假设我有多对多的产品和收据。有什么方法可以直接查询product.receipts或receipt.products并获得Iqueryable而无需引用join_table吗?
答案 0 :(得分:2)
我假设你正在使用Linq-to-SQL。
答案是“不,但......”
你可以在Linq-to-SQL中使用多个关系,但做需要有一个代表联结表的单独类型。
如果您只想...数据绑定对模型对象的子属性,你可以做一些非常简单的事情: -
public partial class Order
{
public IEnumerable<Product> Products
{
get { return Order_Details.Select(x => x.Product); }
}
}
Beware of the select-n-plus-one problem但是如果您想在任何时候使用订单列表时使用它。
更多信息:http://www.iaingalloway.com/2015/06/many-to-many-relationships-in-linq-to-sql.html和here。
此外,还有一大堆重复的问题: -
LINQ many-to-many relationships: Solution?
答案 1 :(得分:0)
Linq to Entities和Entity Framework支持多对多关系。我知道Linq对Sql没有,我认为(不确定)Linq对NHibernate确实支持多对多。 (我知道NHibernate支持多对多)