【发布时间】:2014-07-08 14:41:43
【问题描述】:
我需要使用 LINQ 搜索数据源。
本质上,我想要的查询类似于:
select * from table where id in ("1","2","4");
增加的“复杂性”是括号内的值将来自字符串列表。
这是我的代码:
public void getAdUserData(List<String> _inADUserDatas)
{
var records = from _adUserDatas in _adUserDataDBDataContex.ADUserDatas
where
new string[] { (char)34 + String.Join((char)34 + "," + (char)34, _inADUserDatas) + (char)34 }.Contains(_adUserDatas.fan)
orderby _adUserDatas.fan
select _adUserDatas;
var test = records.ToList();
Console.WriteLine((char)34 + String.Join((char)34 + "," + (char)34, _inADUserDatas) + (char)34);
可以看出,我使用 String.join 将列表转换为逗号分隔的字符串,其中每个字符串都用双引号括起来。
我也尝试过使用下面的代码,但没有任何运气。
new string[] {String.Join(",", _inADUserDatas) }.Contains(_adUserDatas.fan)
我还尝试将列表中的一些 ID 手动输入到查询中,我正在获取记录。
我相信我做得对,但它没有返回任何记录。变量 test 的计数为 0。
有什么想法可能是错的吗?通过结合 stackoverflow 中的几个讨论,特别是 this link here 和 this other link,我已经得到了我的代码的想法。
非常感谢
【问题讨论】:
标签: c# linq linq-to-sql