我正在尝试从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/