C# 列表<;Int32>;与LINQ-SQL推荐请求中的表联接
我有一个要从不同上下文检索的帐户ID列表,需要能够做到这一点: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,
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部分)注意,实际上最大参数容量链接在这里: