C# Linq:字段内的查询

C# Linq:字段内的查询,c#,linq,entity-framework,C#,Linq,Entity Framework,我想写一个嵌套查询 我有3个目标: public class Invoice { public int Id { get; set; } public ICollection<InvoiceDet> Details { get; set; } } public class InvoiceDet { public int InvoiceId { get; set; } public int Quantity { get; set; } public int Arti

我想写一个嵌套查询

我有3个目标:

public class Invoice
{
  public int Id { get; set; }
  public ICollection<InvoiceDet> Details { get; set; }
}
public class InvoiceDet
{
  public int InvoiceId { get; set; }
  public int Quantity { get; set; }
  public int ArticleId { get; set; }
}

public class Article
{
  public int Id { get; set; }
  public string Description { get; set; }
  public decimal Price { get; set; }
}

任何帮助都将不胜感激。非常感谢

LINQ to Entities与LINQ to Object外观相似,但却是一种完全不同的野兽。实体框架从查询中构建一个表达式树,当您第一次尝试枚举数据时,该表达式树将转换为SQL语句。不幸的是,有些东西实体框架不能/不能转换为SQL,其中之一就是嵌套查询。它根本不是为了知道该怎么办

details = (from d in i.Details.....

您需要重新编写查询,这样它就不会有这样的嵌套查询。

LINQ to entities必须转换为SQL;所以他很挑剔。在执行子查询之前,您是否尝试过具体化列表?通常,当我得到一个不受支持的异常时,它会告诉我问题出在什么方法上,我还希望
InvoiceDet
有一个
InvoiceId
,为了促进1对多关系,使linq更易于阅读,在我看来,您是否考虑过使用
JOIN
而不是多个selects?我非常确定linq to Entities不允许您使用任何类似的嵌套查询。
details = (from d in i.Details.....