C# 实体框架多对多相交
我有一个多对多的关系,我需要如何得到这个结果的帮助C# 实体框架多对多相交,c#,linq,entity-framework,many-to-many,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 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; }
}
公共类客户{
公共虚拟IList CustomerPreference{get;set;}
}
公共阶级偏好{
公共虚拟ICollection CustomerPreferece{get;set;}
public int DefaultValue{get;set;}
}
公共类CustomerPreference{
公共int值{get;set;}
公共虚拟客户{get;set;}
公共虚拟首选项{get;set;}
}
假设我有一个Customer1和Pref1、Pref2、Pref3,默认值为0。
如果我为Pref1插入值为1的CustomerPreference记录,我希望查询此结果
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; }
}
客户|偏好|价值客户1 |首选1 | 1
客户1 |首选2 | 0
客户1 |首选3 | 0
谢谢。通过从
CustomerPreference
中进行简单的选择,您试图实现的目标是完成的,请确保您包括Customer
,并且首选项
是选择结果
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();
您的表不是
ICollections
,即使它应该是多对多关系?不能在LINQ到实体查询中构造实体或复杂类型。首先,您应该修复代码,因为您的属性没有名称公共虚拟客户参考