gpt4 book ai didi

c# - 有没有办法通过反射或其他方式获取实体 ID 字段的名称?

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

我正在尝试获取实体的 ID 字段名称(属性名称),这可能吗?

用户 user= new User();//用户是一个实体

字符串 idField = ????????//用户.UserId

最佳答案

public static IEnumerable<string> GetIdFields<TEntity>() where TEntity
: EntityObject
{
var ids = from p in typeof(TEntity).GetProperties()
where (from a in p.GetCustomAttributes(false)
where a is EdmScalarPropertyAttribute &&
((EdmScalarPropertyAttribute)a).EntityKeyProperty
select true).FirstOrDefault()
select p.Name;
return ids;
}

public static string GetIdField<TEntity>() where TEntity : EntityObject
{
IEnumerable<string> ids = GetIdFields<TEntity>();
string id = ids.Where(s => s.Trim().StartsWith(typeof(TEntity).Name.
Trim())).FirstOrDefault();
if (string.IsNullOrEmpty(id)) id = ids.First();
return id;
}

您可以将两个功能合并为一个或设置您的搜索条件。

关于c# - 有没有办法通过反射或其他方式获取实体 ID 字段的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1077497/

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