Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.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
C# 列表<;Int32>;与LINQ-SQL推荐请求中的表联接_C#_.net_Linq To Sql - Fatal编程技术网

C# 列表<;Int32>;与LINQ-SQL推荐请求中的表联接

C# 列表<;Int32>;与LINQ-SQL推荐请求中的表联接,c#,.net,linq-to-sql,C#,.net,Linq To Sql,我有一个要从不同上下文检索的帐户ID列表,需要能够做到这一点: List<Account> MyMethod(List<int> Accounts) { List<Account> accounts = dc.Accounts.Join(Accounts, x => x.AccountID,

我有一个要从不同上下文检索的帐户ID列表,需要能够做到这一点:

List<Account> MyMethod(List<int> Accounts)
{
    List<Account> accounts = dc.Accounts.Join(Accounts,
                                              x => x.AccountID,
                                              y => y,
                                              (x, y) => x).ToList<Account>();
    return accounts;
}
列出我的方法(列出帐户)
{
列表帐户=dc.accounts.Join(帐户,
x=>x.AccountID,
y=>y,
(x,y)=>x.ToList();
归还账户;
}
这显然不是一个有效的查询,但处理此类请求的最佳方式是什么

:更新:::

基本上我提出了这个解决方案,但它并不完整:

accounts = (from a in dc.Accounts
                        where Accounts.Contains(a.AccountID)
                        select a).ToList<Account>();
accounts=(来自dc.accounts中的a)
其中Accounts.Contains(a.AccountID)
选择一个.ToList();
但是,如何将其编写为lambda表达式?由于明显的原因,我无法使Accounts.Contains(x=>x.AccountID)正常工作。

您可以尝试:

List<Account> MyMethod(List<int> accounts)
{
    return dc.Accounts.Where(x => accounts.Contains(x.AccountID))
                      .ToList();
}
我的教育博客系列中的列表。

您可以尝试:

List<Account> MyMethod(List<int> accounts)
{
    return dc.Accounts.Where(x => accounts.Contains(x.AccountID))
                      .ToList();
}

我的教育博客系列中的列表。

您可以使用此解决方案:

您可以使用此解决方案:

显然?我理解这个问题,但我不会说它是“明显的”。有人可能会说,经过检查,它是非常好的LINQ代码什么明显的原因?这正是此linq查询将被转换为的内容:
dc.Accounts.Where(x=>Accounts.Contains(x.AccoundID)).Tolist()显然?我理解这个问题,但我不会说它是“明显的”。有人可能会说,经过检查,它是非常好的LINQ代码什么明显的原因?这正是此linq查询将被转换为的内容:
dc.Accounts.Where(x=>Accounts.Contains(x.AccoundID)).Tolist()它在抱怨时间限制,所以我不能马上将它标记为已回答,否则我会有,但无论如何,再次感谢你。这是一个警告工作。。。如果列表太长,就会爆炸。。。我想它在100左右爆炸。记录在案,sql server支持大约2000个params@Sam:你知道为什么LINQ到SQL的限制比SQL server本身低这么多吗?@Jon我“认为”这就是为什么你在SQL server 7和2000中必须通过nvarchar(4000)的原因。。。因此,他们寻求更广泛的支持。对我来说,这个决定似乎有点奇怪。(请参阅sp_executesql部分)注意,实际上最大参数容量链接在这里:它在抱怨时间限制,因此我不能立即将其标记为已回答,否则我将不得不再次感谢您。这需要注意。。。如果列表太长,就会爆炸。。。我想它在100左右爆炸。记录在案,sql server支持大约2000个params@Sam:你知道为什么LINQ到SQL的限制比SQL server本身低这么多吗?@Jon我“认为”这就是为什么你在SQL server 7和2000中必须通过nvarchar(4000)的原因。。。因此,他们寻求更广泛的支持。对我来说,这个决定似乎有点奇怪。(请参阅sp_executesql部分)注意,实际上最大参数容量链接在这里: