我有一個名爲Entities
的實體集,它具有字段Name
和字段Version
。我希望返回具有所選Name
的最高版本的對象。實體框架 - 從ID =(從實體中選擇最大(Id))的實體中選擇*
SQL明智我會去
Select *
from table
where name = 'name' and version = (select max(version)
from table
where name = 'name')
或類似的東西。不知道如何用EF實現這一點。我試圖用CreateQuery<>
與查詢的文本表示,如果有幫助。
感謝
編輯: 下面是使用兩個查詢工作版本。不是我想要的,似乎效率很低。
var container = new TheModelContainer();
var query = container.CreateQuery<SimpleEntity>(
"SELECT VALUE i FROM SimpleEntities AS i WHERE i.Name = 'Test' ORDER BY i.Version desc");
var entity = query.Execute(MergeOption.OverwriteChanges).FirstOrDefault();
query =
container.CreateQuery<SimpleEntity>(
"SELECT VALUE i FROM SimpleEntities AS i WHERE i.Name = 'Test' AND i.Version =" + entity.Version);
var entity2 = query.Execute(MergeOption.OverwriteChanges);
Console.WriteLine(entity2.GetType().ToString());
簡單。謝謝:) – Ian