我有这个查询工作正常
var badWords = _db.Restrictions.Where(x => x.Value.Length == 4 && x.Status_ID == 1 && x.RestrictionType.Status_ID == 1);
现在我正在尝试添加查询以检查我的类型ID是否包含某个ID列表,如下所示
var idlist = new int[] { 28,24,16,13,14,15 };
var badWords = _db.Restrictions.Where(x => x.Value.Length == 4 && x.Status_ID == 1 && x.RestrictionType.Status_ID == 1 && idlist.Contains(x.RestrictionType) );
但在包含
下收到错误错误5' int []'不包含'包含'的定义和最好的扩展方法重载' System.Linq.Queryable.Contains(System.Linq.IQueryable,TSource)'有一些无效的论点
答案 0 :(得分:1)
您的单值状态测试
&& x.RestrictionType.Status_ID == 1
表示RestrictionType
是一个子对象;据推测,那么,您正试图针对限制类型的特定实例进行测试:
&& idlist.Contains(x.RestrictionType.Id)
答案 1 :(得分:0)
检查这个
var badWords = _db.Restrictions.Select(x => x.Id).Except(idlist);
badWords=badWords.Where(x => x.Value.Length == 4 && x.Status_ID == 1 && x.RestrictionType.Status_ID == 1 );