He los siguientes modelos en mi ASP.NET MVC 3 proyectos:include() en LINQ a Entidades consultar
public class Task
{
public int Id { get; set; }
public DateTime CreatedOn { get; set; }
public TaskStatus Status { get; set; }
}
public class TaskStatus
{
public int Id { get; set; }
public string Description { get; set; }
}
Como referencia, aquí está mi DbContext clase:
public class TaskManagerSets : DbContext
{
public DbSet<Task> TaskSet { get; set; }
public DbSet<TaskStatus> TaskStatusSet { get; set; }
}
Entonces tengo una Lista Acción en mi TaskController:
TaskManagerSets dbcontext = new TaskManagerSets();
public ActionResult List()
{
var tasks = from tsk in dbcontext.TaskSet.Include("TaskStatusSet")
select tsk;
return View(tasks.ToList());
}
fin tengo la lista de tareas Vista:
@model IEnumerable<TaskManager.Models.Task>
<ul>
@foreach (var tsk in Model)
{
<li>@tsk.Id | @tsk.CreatedOn | @tsk.Status.Description</li>
}
</ul>
Cuando ejecuto mi proyecto me sale el siguiente error:
A specified Include path is not valid. The EntityType 'CodeFirstNamespace.Task' does not declare a navigation property with the name 'TaskStatus'.
El problema es, sin duda en el Include("TaskStatusSet")
pero ¿cómo puedo solucionar este problema ?
La primera sugerencia funciona como un amuleto, pero no logré obtener el segundo trabajo. Esto resuelve mi problema, pero la segunda forma sería más elegante y robusta. Gracias. – nunaxe
@nunaxe: Definitivamente debería funcionar. Include tiene una sobrecarga con un parámetro 'Expression> path'. –
Slauma
Oh, acabo de ver que 'CTP4' en sus etiquetas. ¿Sigues usando la versión CTP4? Tal vez esta sobrecarga no existía en esta versión anterior. La versión actual está aquí: http://blogs.msdn.com/b/adonet/archive/2011/04/11/ef-4-1-released.aspx – Slauma