如何使用entity-framework从查询结果中删除列重复项?

时间:2010-04-26 01:18:12

标签: entity-framework

在我的数据库表上我有

Key    | Value
a      | 1
a      | 2
b      | 11
c      | 1
d      | 2
b      | 3

但我只需要获取哪些键不是前一行的重复项。期望的结果应该是:

Key    | Value
a      | 1
b      | 11
c      | 1
d      | 2

我们如何使用实体框架获得所需的结果?

注意:我们需要第一个值。非常感谢你。

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

从概念上讲,这两种方法都允许您编写一个排除“重复行”的视图。区别在于观点的存在。

如果您可以控制数据库 - 我将视图放在数据库中 如果没有,你可以将视图放在你的内部,然后映射到那个。

希望这有帮助

亚历