0

Linq to entity 语法中是否有任何“IN”关键字可用?我有一个添加多个项目的列表框。我想在 db 中搜索这些项目。我的查询如下所示:

 var result = context.data_vault
                      .Where(d => d.STATE == lstStates.SelectedItem.Text).OrderBy(d=>d.dv_id)
                      .Skip(e.NewPageIndex * GridView1.PageSize)
                      .Take(GridView1.PageSize)
                      .ToList();

我想要d => d.STATE == lstStates.Items。如何改变它?

4

3 回答 3

1

编码:

string[] arr = listview.Items
                       .Cast<ListItem>()
                       .Select(i => i.Text) // or .Value
                       .ToArray();

db.Where(d => arr.Contains(d.STATE);

应该翻译成查询:

... WHERE STATE IN ('your', 'array', 'items')
于 2012-06-08T17:20:44.833 回答
0

您可以尝试.Any().Contains()语法

像这样的例子:

select d from context.Data
Where ListofIdsFromUI.Any(d.Id)
select d
于 2012-06-08T17:47:47.503 回答
0

尝试这个:

var result = context.data_vault
                      .Where(d => lstStates.Items.Contains(d.STATE)).OrderBy(d=>d.dv_id)
                      .Skip(e.NewPageIndex * GridView1.PageSize)
                      .Take(GridView1.PageSize)
                      .ToList();

这里,

lstStates is List<string>
于 2012-06-08T17:30:11.830 回答