我正在使用Entity Framework Power Tools来生成数据库模型类。 它使用HasKey()方法来定义类的键属性。 有没有办法在我的应用程序代码中使用它时找到类的键属性? 有没有办法检查特定属性是否为Key Attribute?
public class MyTableMap : EntityTypeConfiguration<MyTable>
{
public MyTableMap()
{
// Primary Key
this.HasKey(t => t.RecordID);
}
}
我试图使用以下方法找到关键属性,但它不起作用
if (propertyInfoObj.GetCustomAttributes(false).Any(x => x.GetType() == typeof(KeyAttribute)))
答案 0 :(得分:0)
我使用以下方法解决了我的问题:
ObjectContext objectContext = ((IObjectContextAdapter)dbContext).ObjectContext;
ObjectSet<Entity> set = objectContext.CreateObjectSet<Entity>();
IEnumerable<string> keyNames = set.EntitySet.ElementType
.KeyMembers
.Select(k => k.Name);
string keyName = keyNames.FirstOrDefault();
对象属性和/或值可以通过keyName使用反射来访问。