的LINQ从一个列表中选择多个领域明显
问题描述:
我有问题,用一个单一的查询,我试图把对象(opList
)的列表,并提取每个对象的2 UID的创建另一个查询鲜明的列表。的LINQ从一个列表中选择多个领域明显
DataContext.Where(x => opList.Select(y => y.UIDFirst)
.Union(opList.Select(o => o.UIDSecond)).ToList()
.Contains(x.uid)).ToList();
而每个选择的自己的工作,并结合工程加入名单的唯一列表(imediates窗口测试)抛出一个异常时处理语句作为一个整体。
对我做错了什么任何想法;
{"Unable to create a constant value of type 'DataContext.Class.Operation'. Only primitive types or enumeration types are supported in this context."}
答
这应该工作:
var uids = opList.Select(o => o.UIDFirst)
.Concat(opList.Select(o => o.UIDSecond)
.ToList();
var result = DataContext.Where(dc => uids.Contains(x.uid)).ToList();
答
你必须直接调用包含在DataContext的一定DbSet
你的说法,而不是在DataContext。
DatContext.SomeDbSet.Where(x => /* ... */);
我仍然感到困惑:是'DataContext.Where'正确吗?你不应该叫'Where'在那个'DataContext'一些表?我认为EF不支持''这条Where'里面ToList',但我不会太EF经历。 –