Ale*_*mov 5 c# linq entity-framework
context.Projects
.Include(x => x.Members) //List<Member> public class Member
.Include(x => x.Members.Select(z => z.City)) //public class City
.ToList();
Run Code Online (Sandbox Code Playgroud)
从项目中选择
包括项目清单.成员
包括project.Members.City中的每一个
需要添加一些数据到结果
context.Projects
.Include(x => x.Members)
.Include(x => x.Members.Select(z => z.City))
.Select(x => new {
Project = x,
Amount = 22
})
.ToList();
Run Code Online (Sandbox Code Playgroud)
项目属性已填充但成员为空
问题1 -如何包括Project.Members与新{项目= X}
我接下来做
context.Projects
.Include(x => x.Members) //List<Member>
.Include(x => x.Members.Select(z => z.City)) //City is navigation property
.Select(x => new {
Project = x,
Members = x.Members,
Amount = 22
})
.ToList();
Run Code Online (Sandbox Code Playgroud)
填充项目属性并填充成员但成员[0] .City为空
问题2 - 如何填写会员[0].城市
PS
EntityFramework 6
public class Project
{
public Guid Id { get; set; }
public string Name { get; set; }
public List<ProjectMember> Members { get; set; }
}
public class ProjectMember
{
public Guid ProjectId { get; set; }
public Project Project { get; set; }
public Guid CityId { get; set; }
public City City { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
PSS
这项工作 - 但代码开销
context.Projects
.Include(x => x.Members) //List<Member>
.Include(x => x.Members.Select(z => z.City)) //City is navigation property
.Select(x => new {
Project = x,
Members = x.Members.Select(z => new {
Item = z,
City= z.City
}).ToList(),
Amount = 22
})
.ToList();
Run Code Online (Sandbox Code Playgroud)
Ale*_*rck 14
在包含之后执行的任何操作(过滤除外)都将导致包含被丢弃.通过AsEnumerable在包含之后调用,您将确保执行查询,其余操作将在内存中完成:
context.Projects
.Include(x => x.Members)
.Include(x => x.Members.Select(z => z.City))
.AsEnumerable()
.Select(x => new { Project = x, Amount = 22 })
.ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9680 次 |
| 最近记录: |