gpt4 book ai didi

c# - 使用 Entity Framework 动态选择表

转载 作者:太空狗 更新时间:2023-10-30 01:17:54 25 4
gpt4 key购买 nike

我有一个不同实体的属性名称,如汽车、人等。根据 Id 我想获取名称。但我想用一个方法完成它entityName 并根据它给出输出。 像这样:

public string GetEntityByName(int id,string entityName)
{
using (var context = new MyContext())
{
return context[entityName].Find(id).Name;
}
}

最佳答案

您所有的实体都应该扩展一个基类或实现一个定义 Name 的接口(interface)属性(property)。

public interface INamed {
string Name { get; set; }
}

public class Car : INamed {
public int Id { get; set; }
public string Name { get; set; }
}

我不知道 DbContext支持索引属性,但如果支持,您可以设法执行如下操作:

INamed namedEntity = context[entityName].Find(id) as INamed;
if(namedEntity != null)
return namedEntity.Name;
else
return string.Empty;

如果您确定所有实体都是 INamed , 那么你就可以在一行中实现这一切:

return ((INamed)context[entityName].Find(id)).Name;

请注意,如果检索到的实体未实现 INamed,后一种方法将引发或抛出异常

关于c# - 使用 Entity Framework 动态选择表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30030064/

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