在我的数据库表上我有
Key | Value
a | 1
a | 2
b | 11
c | 1
d | 2
b | 3
但我只需要获取哪些键不是前一行的重复项。期望的结果应该是:
Key | Value
a | 1
b | 11
c | 1
d | 2
我们如何使用实体框架获得所需的结果?
注意:我们需要第一个值。非常感谢你。
答案 0 :(得分:2)
var q = from e in Context.MyTable
group e by e.Key into g
select new
{
Key = g.Key,
Value = g.OrderBy(v => v.Value).FirstOrDefault()
};
答案 1 :(得分:1)
您应该查看在数据库中编写View并将实体映射到该数据库。 或者在EDMX的一部分中创建一个DefiningQuery(也就是最终在SSDL文件中的那一部分)。
有关详细信息,请参阅Tip 34。
从概念上讲,这两种方法都允许您编写一个排除“重复行”的视图。区别在于观点的存在。
如果您可以控制数据库 - 我将视图放在数据库中 如果没有,你可以将视图放在你的内部,然后映射到那个。
希望这有帮助
亚历