Что in
и not in
равняется в LINQ SQL?
Например,
select * from table in ( ...)
and
select * from table not in (..)
Что равно вышеупомянутому оператору в LINQ к SQL?
Вы используете, , где
.Contains (
var myProducts = from p in db.Products
where productList.Contains(p.ProductID)
select p;
Или вы можете иметь заранее определенный список как таковой:
int[] ids = {1, 2, 3};
var query = from item in context.items
where ids.Contains( item.id )
select item;
Для случая «НЕ», просто добавьте "!" перед оператором Contains.
Я запутался в вашем вопросе. in
и not in
действуют на поля в запросе, но в вашем примере запроса вы не указываете поля. Поэтому должно быть что-то вроде:
select * from table where fieldname in ('val1', 'val2')
или
select * from table where fieldname not in (1, 2)
Эквивалент этих запросов в LINQ to SQL будет что-то вроде этого:
List<string> validValues = new List<string>() { "val1", "val2"};
var qry = from item in dataContext.TableName
where validValues.Contains(item.FieldName)
select item;
и этого:
List<int> validValues = new List<int>() { 1, 2};
var qry = from item in dataContext.TableName
where !validValues.Contains(item.FieldName)
select item;