在我的数据库表上我有
Key | Value
a | 1
a | 2
b | 11
c | 1
d | 2
b | 3但我只需要获取键不是前一行的副本的项。期望的结果应该是:
Key | Value
a | 1
b | 11
c | 1
d | 2我们如何使用entity-framework获得期望的结果?
注意:我们需要第一个值。非常感谢。
发布于 2010-04-26 23:48:26
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()
};发布于 2010-04-26 12:30:11
您应该考虑在数据库中编写一个视图并将您的实体映射到该视图。或者在EDMX的一部分中创建一个DefiningQuery (也就是SSDL文件中结束的部分)。
有关详细信息,请参阅Tip 34。
从概念上讲,这两种方法都允许您编写一个排除“重复行”的视图。不同之处在于视图所在的位置。
如果你能控制数据库--我会把视图放在数据库里,如果没有,你可以把视图放在你的内部,然后映射到里面。
希望这能有所帮助
亚历克斯
https://stackoverflow.com/questions/2710644
复制相似问题