林奇有多少?

时间:2010-02-01 12:45:08

标签: asp.net linq

假设我有多对多的产品和收据。有什么方法可以直接查询product.receipts或receipt.products并获得Iqueryable而无需引用join_table吗?

2 个答案:

答案 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.htmlhere

此外,还有一大堆重复的问题: -

LINQ many-to-many relationships: Solution?

How to load Many to many LINQ query?

and tons more.

答案 1 :(得分:0)

Linq to Entities和Entity Framework支持多对多关系。我知道Linq对Sql没有,我认为(不确定)Linq对NHibernate确实支持多对多。 (我知道NHibernate支持多对多)