我正在使用Entity Framework 5 code first
和ASP.NET MVC 3
.
我正在努力让一个子对象的子对象填充.以下是我的课程..
申请类;
public class Application
{
// Partial list of properties
public virtual ICollection<Child> Children { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
儿童班:
public class Child
{
// Partial list of properties
public int ChildRelationshipTypeId { get; set; }
public virtual ChildRelationshipType ChildRelationshipType { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
ChildRelationshipType类:
public class ChildRelationshipType
{
public int Id { get; set; }
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
存储库中GetAll方法的一部分,用于返回所有应用程序:
return DatabaseContext.Applications …
Run Code Online (Sandbox Code Playgroud) entity-framework entity-framework-4 entity-framework-4.1 entity-framework-5
这更多的是一个语法问题,而不是一个实际的错误或错误,因为我终于得到了我想要的工作。但我想了解并改进我当前的解决方案。
假设我有一个Users
表,与 table 具有一对多关系Posts
,还有一个进一步的一对一关系表Authors
- 每个表一个Post
。
我想编写一个自定义存储库函数来获取 all Users
、 with all Posts
、 with every Author
per Post
。
我想我可以做这样的事情:
public IQueryable<User> GetUsersWithPostsAndAuthors()
{
var query = GetAll();
// include all details on user object
return query
.Include(user => user.Posts.Select(x => x.Author));
}
Run Code Online (Sandbox Code Playgroud)
它似乎不包括该Author
实体。实际上,我收到以下错误:
Lambda expression used inside Include is not valid.
Run Code Online (Sandbox Code Playgroud)
然后我想也许这些Posts
需要首先出现在查询中,所以我尝试了以下方法:
Lambda expression used inside Include is not valid.
Run Code Online (Sandbox Code Playgroud)
不幸的是,我遇到了同样的错误:
Lambda expression used …
Run Code Online (Sandbox Code Playgroud) c# ×1