【发布时间】:2015-01-03 22:51:37
【问题描述】:
我刚刚学习 LINQ,遇到了问题,我不确定如何在 LINQ 中做。
string numbers = "1,3,4,5";
string[] outletsInaStringArray = outlets.Split(',');
List<string> numbersAsAList = outletsInaStringArray.ToList();
我的数据库中有一个字段,其中包含一个数字。我只想选择数据库中的数字在数字“1,3,4,5”的行列表中的行(这些数字只是示例)。
提前致谢
我查看了 Tim 和 James 的答案,还查看了 James 发送的线路。我还是有点困惑......对不起。下面是我的实际代码。它编译但不起作用
string outlets = "1,3,4,5"
string[] outletsNeeded = outlets.Split(',');
List<string> outletsNeededList = outletsNeeded.ToList();
DashboardEntities1 db = new DashboardEntities1();
var deptSalesQuery = (
from d in db.DashboardFigures
where (d.TypeOfinformation == "DEPTSALES") && (outletsNeeded.ToString().Contains(d.OutletNo.ToString()))
select new DeptSales
{
Dn = (int)d.Number,
Dnm = "Mens",
On = d.OutletNo,
Qs = (double)d.Value_4,
Se = (double)d.Value_2,
Si = (double)d.Value_3
}
);
在 SQL 的 DASHBAORDFIGURES 表中,我有 2 条记录,其中网点编号 = 1,因此应该有两条记录。 对不起,如果这是一件简单的事情,它对我来说是新事物并且令人沮丧。
【问题讨论】:
-
ToString()不受Linq-To-Entities支持。而是将字符串列表转换为整数列表并使用Contains。