22
我在ASP.NET MVC 3项目以下型号:包括()在LINQ to Entities查询
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; }
}
供参考,这是我的的DbContext类:
public class TaskManagerSets : DbContext
{
public DbSet<Task> TaskSet { get; set; }
public DbSet<TaskStatus> TaskStatusSet { get; set; }
}
然后我有一个列表在我的操作TaskController:
TaskManagerSets dbcontext = new TaskManagerSets();
public ActionResult List()
{
var tasks = from tsk in dbcontext.TaskSet.Include("TaskStatusSet")
select tsk;
return View(tasks.ToList());
}
最后我有任务列表查看:
@model IEnumerable<TaskManager.Models.Task>
<ul>
@foreach (var tsk in Model)
{
<li>@tsk.Id | @tsk.CreatedOn | @tsk.Status.Description</li>
}
</ul>
当我执行我的项目,我得到以下错误:
A specified Include path is not valid. The EntityType 'CodeFirstNamespace.Task' does not declare a navigation property with the name 'TaskStatus'.
的问题肯定是在Include("TaskStatusSet")
,但我应该怎么解决这个问题?
第一个建议就像一个魅力,但我没有设法得到第二个工作。这解决了我的问题,但第二种方法将更加优雅和强大。谢谢。 – nunaxe 2011-04-13 16:57:13
@ nunaxe:肯定应该工作。包含一个带有参数'Expression> path'的重载。 –
Slauma
2011-04-13 17:07:36
哦,我只是看到你在你的标签中有'CTP4'。你还在使用CTP4版本吗?这个旧版本中可能没有这种超载。当前版本在这里:http://blogs.msdn.com/b/adonet/archive/2011/04/11/ef-4-1-released.aspx – Slauma 2011-04-13 17:09:48