实体框架 - 检查属性是否已映射

时间:2014-06-18 13:55:38

标签: c# entity-framework data-annotations inotifypropertychanged

我正在使用Entity Framework并触发属性更改事件,如果映射了更改的属性,我想更新属性。

protected void FooPropertyChanged(object sender, PropertyChangedEventArgs e)
{
    var notMappedArray = typeof(Foo).GetProperty(e.PropertyName).GetCustomAttributes(typeof(NotMappedAttribute), false); // I thought this might return null if the property did not have the attribute. It does not.
    //if (notMappedArray == null)
    UnitOfWork.Value.GetRepository<Foo>().Update(MyFoo);
}

查找发送到此事件的属性是否映射到实体框架中的最佳方法是什么?

编辑:我看过this question。然而,似乎答案有点过分,并没有完全符合我的需要。

1 个答案:

答案 0 :(得分:4)

我的问题出在我的Foo课上。我显然有一个浮动[NotMapped]属性远远超过我检查的属性。我最终使用了这样的东西:

protected void FooPropertyChanged(object sender, PropertyChangedEventArgs e)
{
    var notMapped = typeof(Foo).GetProperty(e.PropertyName).GetCustomAttributes(typeof(NotMappedAttribute), false);
    if (notMapped.Length == 0)
    {
        UnitOfWork.Value.GetRepository<Foo>().Update(MyFoo);
    }
}