在我的數據庫表我有如何使用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
我們如何使用entity-framework獲得所需的結果?
注意:我們需要第一個值。非常感謝你。
在我的數據庫表我有如何使用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
我們如何使用entity-framework獲得所需的結果?
注意:我們需要第一個值。非常感謝你。
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()
};
你應該看看在數據庫中編寫一個視圖並將你的實體映射到該視圖。 或者在EDMX的一部分(也就是最後在SSDL文件中的位)創建一個DefiningQuery。
查看Tip 34瞭解更多信息。
從概念上講,兩種方法都允許您編寫排除「重複行」的視圖。不同之處在於視圖的存在。
如果你有數據庫的控制權 - 我會把數據庫中的視圖 如果不是,你可以把視圖放在你的內部然後映射到數據庫。
希望這有助於
亞歷
你所說的 「第一」 的意思? – 2010-04-26 01:22:49
關鍵字'a'有2個值,分別是'1'和'2'。第一個值是1.這是基於排序可能是什麼。 – Jronny 2010-04-26 01:32:49