我正在尝试从EF/Linq查询中加载KeyValuePairs列表,如下所示:

return (from o in context.myTable
select new KeyValuePair<int, string>(o.columnA, o.columnB)).ToList();

我的问题是,这导致错误



有没有解决此问题的简单方法?我知道我可以为此创建一个自定义类,而不是使用KeyValuePair,但这似乎是在重新发明轮子。

最佳答案

从表中仅选择columnA和columnB,然后在内存中移动进一步的处理:

return context.myTable
              .Select(o => new { o.columnA, o.columnB }) // only two fields
              .AsEnumerable() // to clients memory
              .Select(o => new KeyValuePair<int, string>(o.columnA, o.columnB))
              .ToList();

还考虑创建包含KeyValuePairs的字典:
return context.myTable.ToDictionary(o => o.columnA, o => o.columnB).ToList();

关于c# - 通过EF/Linq投影到KeyValuePair中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17301972/

10-13 06:05