首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Contains问题

Contains问题
EN

Stack Overflow用户
提问于 2010-04-19 22:51:01
回答 3查看 829关注 0票数 0

我有一个小问题,我不能解决。我想在Linq中使用SQL- in -Statement。我在这个论坛和其他论坛上读到过,我必须使用.Contains (带有反向思维符号:-)。作为输入,我有一个Guid列表。我首先将它们复制到一个数组中,然后执行如下操作:

代码语言:javascript
复制
datatoget = (from p in objectContext.MyDataSet
             where ArrayToSearch.Contains(p.Subtable.Id.ToString())
             select p).ToList();

datatoget是应该存储与Subtable.Id ( Guid)匹配的所有记录的结果。子表是来自MyData的明细表,Id是Guid类型。我尝试了几种方法(将Guid转换为字符串,然后使用.Contains,等等),但我总是得到一个异常,上面写着:

“VS2008 to Entities”无法识别方法“Boolean Contains(System.Guid)”,也无法将此方法转换为内存表达式。(因为我使用的是德语版本的'Linq )。

我在.NET 3.5中使用L2E,在VS2008中使用C#编程。

我已经读了几个例子,但它不起作用。是不是因为使用Guid而不是字符串?我还试图编写自己的比较函数,但我不知道如何集成它,以便.NET调用我的函数进行比较。

EN

回答 3

Stack Overflow用户

发布于 2010-04-19 23:00:13

您可以在arrayToSearch上使用Any()

代码语言:javascript
复制
 datatoget = objectContext
              .MyDataSet
              .Where(p => arrayToSearch.Any(i => i == p.Subtable.Id.ToString()) 
              .ToList();
票数 0
EN

Stack Overflow用户

发布于 2010-04-19 23:17:03

我会尝试这两种方法:

第一种方法:不要转换任何东西。这里假设p.Subtable.Id被定义为数据库中的GUID。

代码语言:javascript
复制
Guid[] guids = GetGuids();

var dataToGet = (from p in objectContext.MyDataSet
                 where guids.Contains(p.Subtable.Id)
                 select p).ToList();

第二种方法:首先将所有GUID转换为字符串。

代码语言:javascript
复制
string[] guids = GetGuids().Select(g => g.ToString()).ToArray();

var dataToGet = (from p in objectContext.MyDataSet
                 where guids.Contains(p.Subtable.Id.ToString())
                 select p).ToList();

如果这些方法都不起作用,那么我们可能需要查看有关问题的更多信息,例如数据库的模式、实体的形状等。

票数 0
EN

Stack Overflow用户

发布于 2010-04-20 19:58:07

谢谢你在我的问题上花时间。Robert Havery的链接做到了:)正如我所看到的,对于实体和.NET3.5,.Contains()不能(很好地)与Linq一起工作。如果不编写扩展方法,就不可能做到这一点。我曾经尝试过使用LinqPad,在使用Linq2SQL时,使用.Contains()没有问题。它像承诺的那样做了。对于Linq to Entities,没有任何承诺,除非我总是得到异常(但这也是一个承诺:)。

特别感谢Robert Havery和所有其他帮助我的人。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2668376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档