实体框架多对多相交

时间:2014-04-22 07:15:21

标签: c# linq entity-framework many-to-many

我有多对多的关系,我需要有关如何获得此结果的帮助

public class Customer {
    public virtual IList<CustomerPreference> CustomerPreference { get; set; }
}

public class Preference {
    public virtual ICollection<CustomerPreference> CustomerPreferece { get; set; }
    public int DefaultValue { get; set; }
}

public class CustomerPreference {
    public int Value { get; set; }
    public virtual Customer { get; set; }
    public virtual Preference {get; set; }
}

假设我有一个Customer1和Pref1,Pref2,Pref3,默认值为0。 如果我为Pref1插入值为1的CustomerPreference记录,我想查询此结果

客户|偏好|值
客户1 | Pref1 | 1
客户1 | Pref2 | 0
客户1 | Pref3 | 0

感谢。

1 个答案:

答案 0 :(得分:1)

您要实现的目标是通过从CustomerPreference进行简单选择来完成,确保包含CustomerPreference是选择结果。

var query = from item in context.CustomerPreference
                  .Include(cp=>cp.Customer)
                  .Include(cp=>cp.Preference)
            select new {item.Customer, item.Preference, item.Value};
var result = query.ToList();