尝试提取外键属性中包含的属性的属性时遇到了困难。为了说明,我在某个类中有这些属性
[Required(ErrorMessage = "Please enter value.")]
public long ObjectCatalogId{ get; set; }
[ForeignKey(nameof(ObjectCatalogId))]
public ObjectCatalog ObjectCatalog { get; set; }
我想通过查看ObjectCatalog属性上的属性来找到一种获取ObjectCatalogId属性的方法。我希望这意味着提取外键的名称(即ObjectCatalogId),然后在ObjectCatalogId和ObjectCatalog类中查找该属性,并使用反射来获取属性。
我的问题是如何在外键上获取名称?
attribute.GetType().Name
不起作用。此外,有更有效的方法来实现这一目标吗?
答案 0 :(得分:2)
问题在于,当我从属性中获取属性时,我将其视为Attribute而不是ForeignKeyAttribute。所以当我改变了
Attribute attribute = Property.GetCustomAttribute(typeof(ForeignKeyAttribute));
到
ForeignKeyAttribute attribute = (ForeignKeyAttribute) Property.GetCustomAttribute(typeof(ForeignKeyAttribute));
我只是使用
得到了我想要的名字string name = attribute.Name;