实体框架中的等效IN运算符

时间:2015-07-09 13:05:58

标签: asp.net entity-framework-4 linq-to-entities

  

var query = from context.Albums中的c   其中,albIds中的c.AlbumID   选择c.Albumname;

这里的 albumIds是某种自定义类型的IENUM<> (在我的情况下是一个实体)

当我执行上述查询时,出现错误 运算符==不能应用于类型int和IEnumerable

此错误是可以接受的,但我如何克服此错误

2 个答案:

答案 0 :(得分:3)

稍微转一下 - 你想要检查你的几个专辑ID是否包含你刚刚在linq中迭代过的专辑的id。所以像这样......

albumIds = {1,2,13,25,277,567};
var query = context.Albums.Where(x=> albumIds.Contains(x.ID));

(抱歉,在我面前没有工具的情况下编写示例代码,请原谅任何明显的错误。希望你能从中得到这个想法。)

答案 1 :(得分:0)

var albumIds= new string[] { "900", "801", "802", "803","906" };                    
var lstData = context.tbl.Where(
                 x => (x.TimeCreated >= yesterday && x.TimeCreated < today) && 
                 albumIds.Contains(x.TransactionSetId)
               ).Select(x => x.X12_Interchange).ToList();