我的列表如下:
List<int> loc = new List<int>();
我填充的
请注意,该列表存储int值。
我喜欢按如下方式将此列表加入数据库表。
我需要做的是这样的:
var result = (from pc in db.loc_details
join l in loc
on pc.locid = loc
select pc).ToList();
我显然收到一个错误:无法将类型'System.Connection.Generics.List隐式转换为'int'。
执行此操作的最佳方法是什么?
答案 0 :(得分:0)
您正试图将单个int
加入整个列表。
尝试
var result = (from pc in db.loc_details
join l in loc
on pc.locid equals l
select pc).ToList();
尽管如果使用EF,这会给您一个不同错误,因为它无法将到内存中列表的联接转换为SQL。在这种情况下,您可以使用Contains
并将其转换为IN
子句:
var result = (from pc in db.loc_details
where loc.Contains(pc.locid)
select pc).ToList();
答案 1 :(得分:0)
您写道:
List<int> loc = new List<int>();
var result = (from pc in db.loc_details
join l in loc
on pc.locid = loc
select pc);
回答自己:pc.LocId
是什么类型? loc
是什么类型?
现在看一下您的代码:
on pc.locid = loc
顺便说一句,=
是equals
还是至少是==
?