Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq to sql linq to sql我如何才能得到一些没有';与现有行不匹配?_Linq To Sql_.net 3.5 - Fatal编程技术网

Linq to sql linq to sql我如何才能得到一些没有';与现有行不匹配?

Linq to sql linq to sql我如何才能得到一些没有';与现有行不匹配?,linq-to-sql,.net-3.5,Linq To Sql,.net 3.5,我有几行数据通过linq到sql从大型表拉入业务对象 现在我想得到一些不匹配的行来测试我的比较函数 使用我认为有效的方法,我得到一个NotSupportedException: 除了Contains()运算符外,查询运算符的LINQ to SQL实现中不能使用局部序列 代码如下: //This table has a 2 field primary key, the other has a single var AllNonMatches = from c in dc.Acaps wher

我有几行数据通过linq到sql从大型表拉入业务对象

现在我想得到一些不匹配的行来测试我的比较函数

使用我认为有效的方法,我得到一个NotSupportedException:

除了Contains()运算符外,查询运算符的LINQ to SQL实现中不能使用局部序列

代码如下:

//This table has a 2 field primary key, the other has a single
var AllNonMatches = from c in dc.Acaps
   where !Matches.Rows.Any((row) => row.Key.Key == c.AppId & row.Key.Value == c.SeqNbr)
   select c;

foreach (var item in AllNonMatches.Take(100)) //Exception here
{}
该表有一个复合主键:AppId和SeqNbr

Matches.Rows定义为keyvaluepair(appid,seqnbr)的字典


它所指的本地序列似乎是本地字典。

您能否提供有关plz表的结构和名称的更多信息

不知道你想做什么

编辑:

好的。。我想我现在明白了

似乎无法将本地表(字典)与SQL表合并/联接。 如果可以的话,恐怕我不知道怎么做

我能想到的最简单的解决方案是将这些结果放在一个表中(例如“Match”),其中包含与表“Acaps”相关的外键,然后使用linq to sql,如:

var AllNonMatches = dc.Acaps.Where(p=>p.Matchs==null).Take(100).ToList();
对不起,我想不出更好的=(

这个怎么样:

var AllNonMatches = from c in dc.Acaps
   where !(Matches.Rows.ContainsKey(c.AppId) && Matches.Rows.ContainsValue(c.SeqNbr))
   select c;

这很好。我还使用了位AND运算符(&&&)-我认为这是一个正确的术语,有助于提高标准AND运算符的性能。

但有一种情况是不正确的-假设我们在匹配中有两个相关项:(a,B)和(C,D)。我们目前正在选择一个类似(a,D)的项。虽然此项不存在于匹配项中(因此应选中),但不会返回,因为两个值都存在于匹配项中(虽然不在同一项上)。这取决于询问者需要什么-此解决方案可能足够。此外,我怀疑ContainsKey()和ContainsValue()是否有效。您可能需要使用Keys.Contains()和值。包含()。