获取实体的列的名称
get the name of a column of an entity
我正在使用 asp.net 核心 3.1 和实体框架 6
创建一个网站
我想在代码 c# 中从我的数据库中获取实体列的名称。
[Table("CORPSDEMETIER")]
public partial class CorpsDeMetier : BaseClass
{
[Column("CODE_CORPS_DE_METIER")]
[StringLength(5)]
public string CodeCorpsDeMetier { get; set; }
[Column("LIBELLE_CORPS_DE_METIER")]
[StringLength(50)]
public string LibelleCorpsDeMetier { get; set; }
public IList<EntrepriseCorpsdemetier> EntrepriseCorpsdemetiers { get; set; }
public IList<ProjetEntrepriseCorpsDeMetier> ProjetEntreprisesCorpsDeMetier { get; set; }
}
我已经看到如何通过 SQL 查询得到它:
SELECT * FROM sys.columns WHERE object_id = OBJECT_ID( 'CORPSDEMETIER' )
但是当我认为我可以在代码中获取它时,我不想再询问数据库一次。
在这种情况下,我想得到“LIBELLE_CORPS_DE_METIER”
CorpsDeMetier item = new CorpsDeMetier();
string name = item.LibelleCorpsDeMetier. ......;
对不起,我的英语很糟糕,希望你能理解我。
谢谢你读我。
您可以使用反射并读取 ColumnAttribute
名称。
public static class ObjExtenstions
{
public static string GetColumnName(this object obj, string name)
{
string result = name;
var property = obj.GetType().GetProperties().FirstOrDefault(x => x.Name.Equals(name));
if (property != null)
{
var columnAttribute = (ColumnAttribute)property.GetCustomAttributes(true).FirstOrDefault(x => x.GetType() == typeof(ColumnAttribute));
result = columnAttribute?.Name;
}
return result;
}
}
用法(如果未使用 ColumnAttribute,则返回 属性 名称):
var name = item.GetColumnName(nameof(CorpsDeMetier.LibelleCorpsDeMetier));
我正在使用 asp.net 核心 3.1 和实体框架 6
创建一个网站我想在代码 c# 中从我的数据库中获取实体列的名称。
[Table("CORPSDEMETIER")]
public partial class CorpsDeMetier : BaseClass
{
[Column("CODE_CORPS_DE_METIER")]
[StringLength(5)]
public string CodeCorpsDeMetier { get; set; }
[Column("LIBELLE_CORPS_DE_METIER")]
[StringLength(50)]
public string LibelleCorpsDeMetier { get; set; }
public IList<EntrepriseCorpsdemetier> EntrepriseCorpsdemetiers { get; set; }
public IList<ProjetEntrepriseCorpsDeMetier> ProjetEntreprisesCorpsDeMetier { get; set; }
}
我已经看到如何通过 SQL 查询得到它:
SELECT * FROM sys.columns WHERE object_id = OBJECT_ID( 'CORPSDEMETIER' )
但是当我认为我可以在代码中获取它时,我不想再询问数据库一次。
在这种情况下,我想得到“LIBELLE_CORPS_DE_METIER”
CorpsDeMetier item = new CorpsDeMetier();
string name = item.LibelleCorpsDeMetier. ......;
对不起,我的英语很糟糕,希望你能理解我。 谢谢你读我。
您可以使用反射并读取 ColumnAttribute
名称。
public static class ObjExtenstions
{
public static string GetColumnName(this object obj, string name)
{
string result = name;
var property = obj.GetType().GetProperties().FirstOrDefault(x => x.Name.Equals(name));
if (property != null)
{
var columnAttribute = (ColumnAttribute)property.GetCustomAttributes(true).FirstOrDefault(x => x.GetType() == typeof(ColumnAttribute));
result = columnAttribute?.Name;
}
return result;
}
}
用法(如果未使用 ColumnAttribute,则返回 属性 名称):
var name = item.GetColumnName(nameof(CorpsDeMetier.LibelleCorpsDeMetier));