Linq Join to List



我有一个列表如下:

    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"。

最好的方法是什么?

您正在尝试将单个int加入整个列表

尝试

var result = (from pc in db.loc_details
              join l in loc
              on pc.locid equals l
              select pc).ToList();

尽管如果您使用的是 EF,这会给您带来不同的错误,因为它无法将内存中列表的联接转换为 SQL。 如果是这种情况,您可以使用转换为IN子句的Contains

var result = (from pc in db.loc_details
                  where loc.Contains(pc.locid)
                  select pc).ToList();

你写道:

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或至少==吗?

最新更新