gpt4 book ai didi

entity-framework - Entity Framework - 从实体中选择 *,其中 Id =(从实体中选择 max(Id))

转载 作者:行者123 更新时间:2023-12-03 07:26:32 25 4
gpt4 key购买 nike

我有一个名为 Entities 的实体集其中有一个字段 Name和一个字段Version 。我希望返回所选 Name 具有最高版本的对象.

就 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());

最佳答案

你能尝试这样的事情吗?

using(var container = new TheModelContainer())
{
string maxEntityName = container.Entities.Max(e => e.Name);
Entity maxEntity = container.Entities
.Where(e => e.Name == maxEntityName)
.FirstOrDefault();
}

这将首先从 Entities 集中选择 Name 的最大值,然后从与该名称匹配的实体集中获取实体。

关于entity-framework - Entity Framework - 从实体中选择 *,其中 Id =(从实体中选择 max(Id)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8385748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com