[英]How to fetch data to multiple entity objects using single Linq statement
我有两个实体类
[Table("Payment")]
public class Payment
{
public Payment()
{
this.SchemeMember = new HashSet<SchemeMember>();
}
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long PaymentUid { get; set; }
/// <summary>
/// Member U id
/// </summary>
public int MemberUid { get; set; }
public ICollection<SchemeMember> SchemeMember { get; set; }
}
public class SchemeMember
{
/// <summary>
/// Gets or sets Member UID
/// </summary>
public int MemberUid { get; set; }
}
这两个实体通过MemberUid关联。 现在,当我尝试使用下面的LINQ获取数据时,SchemeMember计数始终为0。我已经将Lazyloading禁用为false。
var result = (from payment in this.DbContext.Payment
join schemeMember in this.DbContext.SchemeMember on
Payment.MemberUid equals
schemeMember.MemberUid
select payment).ToList();
谁能帮我解决这个问题? 提前致谢。
如果您的映射设置正确,则无需执行任何操作,可以使用引用并让EF完成工作。
假设您要查找具有Value =“ X”的架构成员的付款:
var Payments = DbContext.Payment.Where(p => p.SchemeMember.Any(s => s.Value ==“ X”))。ToList();
注意:我使用过Fluent Linq方法,却从未发现过非常类似于Linq的SQL语法。 :)
我建议对子集合类使用复数命名约定:即Payment.SchemeMembers,因为它使从多个关联中直观地解析单个关联(我有一个计划成员)变得非常容易。 (我有很多计划成员)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.