我有一个名为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