【发布时间】:2015-07-23 17:03:19
【问题描述】:
如何在 LINQ to Entity 中编写“Where Any In”?
这是我的模型:
class Chair
{
public int Id { get; set; }
public int TableId { get; set; }
public Table Table { get; set; }
}
class Table
{
public int Id { get; set; }
public ICollection<Chair> Chairs { get; set; }
public ICollection<Category> Categories { get; set; }
public Table()
{
Chairs = new List<Chair>();
Categories = new List<Category>();
}
}
class Category
{
public int Id { get; set; }
public ICollection<Table> Tables { get; set; }
}
我还得到了一个简单的类别列表:
List<Category> myCategories = new List<Category>(c,d,e);
我只想获取属于从 myCategories 列表中获得类别之一的 Table 的椅子。这就是我想要做的:
var result =
ctx.Chairs.Where(x => x.Table.Categories.Any(y => myCategories.Any(z => z.Id == y.Id))).ToList();
我认为没问题,但我得到的是错误:
“无法创建“ConsoleApplication1.Category”类型的常量值。此上下文仅支持原始类型或枚举类型”
【问题讨论】:
标签: c# linq entity-framework linq-to-sql entity