Jer*_*oen 13 linq-to-entities entity-framework ef-code-first
考虑:
类客户
班级项目
班级门票
班级回复
客户有一个项目的子集合,项目有一个子集合的票证和票据有一个子集合的回复.
var data = ctx.Set<Ticket>().Include(p => p.Client).
Select(p => new { Ticket = p, LastReplyDate = p.Replies.Max(q => q.DateCreated)});
Run Code Online (Sandbox Code Playgroud)
不行.以这种方式选择数据时,既不加载项目也不加载客户端.
我知道如何让它发挥作用.我的问题是为什么它不能这样工作?
Str*_*ior 12
正如Ladislav所提到的,Include只有Ticket直接选择实体才有效.由于您正在预测其他信息,因此Include会被忽略.
这应该提供一个很好的解决方法:
var data = ctx.Set<Ticket>()
.Select(p => new
{
Ticket = p,
Clients = p.Client,
LastReplyDate = p.Replies.Max(q => q.DateCreated)
});
Run Code Online (Sandbox Code Playgroud)
首先,每个Ticket的客户都可以通过Clients匿名类型直接从酒店访问.此外,实体框架应该足够聪明,以便认识到您已经Client为每个集合提取了整个集合Ticket,因此调用也.Ticket.Client应该起作用.
| 归档时间: |
|
| 查看次数: |
3182 次 |
| 最近记录: |