我有一个小问题,我无法解决。 我想在Linq中使用SQL-In-Statement。我已经在这个论坛和其他论坛上读过我必须使用.Contains(带有逆向思考符号:-))。 作为输入,我有一个Guid列表。我第一次复制他们到一个数组,然后做类似的东西:问题与包含
datatoget = (from p in objectContext.MyDataSet
where ArrayToSearch.Contains(p.Subtable.Id.ToString())
select p).ToList();
datatoget是在匹配Subtable.Id(这是一个GUID)的所有记录应保存的结果。 Subtable是MyData的Detail-Table,Id是Guid-Type。 我已经试过几件事情(转换的GUID的字符串,然后使用。载等), 但我总是得到一个异常,说:
“LINQ到实体”不能识别方法“布尔包含(System.Guid)和 无法将此方法转换为内存表达式。 (类似的东西,因为我使用VS2008的德国版)
我使用与.NET 3.5 L2E和C#与VS AM程序2008
我读过几个例子,但它不起作用。这可能是因为使用Guid而不是字符串? 我也试图写我自己的比较函数,但我不知道如何将它集成,以便.NET调用我的函数进行比较。
另请参见http://stackoverflow.com/questions/374267/contains-workaround-using-linq-to-entities – 2010-04-19 14:57:40
罗伯特是正确的这是一个3.5的副本,但也4.0直接支持'包含()'。 – 2010-04-19 16:11:49