繁体   English   中英

如何使用单个Linq语句将数据获取到多个实体对象

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM