将HashSet连接到LINQ to SQL查询中

时间:2012-05-29 08:26:08

标签: c# sql linq join hashset

我有一个HashSet,其中包含必须选择的项目的列表int int ID。

HashSet<int> SelectedItems = new HashSet<int>()

完整的项目列表由LINQ to SQL语句加载。 我将填充以下的ObservableCollection:

public class DataItem
{
    public int Id { get; private set; }
    public name String { get; private set; }
    public bool IsSelected { get; set; }
}

如果Id在HashSet中,则IsSelected属性必须设置为true,否则必须设置为false;

这是我的LINQ查询:

var items =
    from c in itemsContext.DataItems
    where (c.Latest == true)
    select c;

如何将HashSet加入上述查询以实现我想要的结果?

由于

PS:很抱歉,我不知道为什么代码块格式不正确。

2 个答案:

答案 0 :(得分:3)

如果我正确理解你的问题,即与memmory中的选定项目相对应的数据项... 然后使用包含...

from dataItem in context.DataItems
where dataItem.Latest && SelectedItems.Contains(dataItem.Id)
select dataItem;

答案 1 :(得分:0)

这就是我提出的解决方案:

from dataItem in context.DataItems
where dataItem.Latest
select new {dataItem.Id,dataItem.Name,IsSelected=SelectedItems.Contains(dataItem.Id)};

感谢您指出我正确的方向。