的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."} 
+0

我仍然感到困惑:是'DataContext.Where'正确吗?你不应该叫'Where'在那个'DataContext'一些表?我认为EF不支持''这条Where'里面ToList',但我不会太EF经历。 –

这应该工作:

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 => /* ... */);