在属性计数=某物的情况下,如何使用LINQ Lambda
我有一个实体对象,Item,看起来像这样在属性计数=某物的情况下,如何使用LINQ Lambda,linq,linq-to-entities,Linq,Linq To Entities,我有一个实体对象,Item,看起来像这样 public class Item() { IEnumerable<Category> Categories { get; set; } } 或 但两者都会抛出错误。。。 LINQ to实体中不支持指定的类型成员“类别”。只支持初始值设定项、实体成员和实体导航属性 这个错误告诉了我什么?我如何查询我要查找的内容?是否类别也是EF跟踪的实体?英孚似乎并不这么认为。你在用POCOs吗?通常,1对多的导航属性需要用ICollectionn
public class Item()
{
IEnumerable<Category> Categories { get; set; }
}
或
但两者都会抛出错误。。。
LINQ to实体中不支持指定的类型成员“类别”。只支持初始值设定项、实体成员和实体导航属性
这个错误告诉了我什么?我如何查询我要查找的内容?是否
类别
也是EF跟踪的实体?英孚似乎并不这么认为。你在用POCOs吗?通常,1对多的导航属性需要用ICollection
not IEnumerable表示
基本上,EF表示它不知道如何将db.Items.Where(i=>i.Categories.Count()==0)
转换为SQL,因为它不确定与数据库相关的类别是什么
您也可能需要在EF通话中加入(“类别”),但我认为您有比这更基本的问题。试试看
var unassigned = db.Items.Categories.Where(c=>c.Count() ==0);
你是对的。看起来该属性来自分部类,而实际上不在EDMX中。
var unassigned = db.Items.Where(i => i.Categories.Any());
var unassigned = db.Items.Categories.Where(c=>c.Count() ==0);