gpt4 book ai didi

c# - EF中的主键最大值

转载 作者:太空宇宙 更新时间:2023-11-03 13:37:18 25 4
gpt4 key购买 nike

是否可以使用 EF 获取 pk 列的最大值?我的意思是像查找方法它根据 pk 值获取一个实体,我们已经有了这个:

public TEntity Find(params object[] keyValues);

我正在寻找类似的东西:

public object PkMax<TEntity>();//which returns max of pk column

更新:

我正在寻找基于实体 pk 的动态 linq 查询,目前我知道如何获得 pk 多亏了这个 SO 答案:How to get the Primary Key(s) in Entity Framework 4.1, i.e. using DbContext

最佳答案

您需要手动构建表达式,以便 LINQ-to-Entities 可以为您将其转换为 SQL。既然你说你可以得到 PK 属性的字符串名称,你可以使用这样的扩展方法:

public int GetMaxPK<T>(this IQueryable<T> query, string pkPropertyName)
{
// TODO: add argument checks
var parameter = Expression.Parameter(typeof(T));
var body = Expression.Property(parameter, pkPropertyName);
var lambda = Expression.Lambda<Func<T,int>>(body, parameter);
var result = query.Max (lambda);
return result;
}

关于c# - EF中的主键最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18279011/

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