自 L2S 以来已经有一段时间了,但现在开始了。我可以发誓 int[].Contains 是内置的..您是否偶然使用 GUID?也许我在想EF。这有帮助吗:Linq query with Array in where clause?
如果您要为此编写 SQL 过程,您将传入 ID 的 CSV 字符串。使用相同的想法(警告我的头脑):
var ids = "," + string.Join(",",myArray) + ",";
var rooms = from rooms in entity.Rooms
where SqlMethods.Like("," + rooms.RoomID + ",", ids) select rooms;
也许 ids.Contains("," + rooms.RoomID + ",") 可以工作,因为它具有内置 SQL 的翻译(用于字符串)
另一种方法是编写您自己的 UDF,将 CSV 分解为表格并执行 SELECT EXISTS。应该有很多这样的例子,因为这是您使用存储过程的方式。那么你可以:
var ids = "," + string.Join(",",myArray) + ",";
var rooms = from rooms in entity.Rooms
where MyMethods.Contains(ids,rooms.RoomID) select rooms;