我正在使用 C# 中的 Microsoft Entity Framework 和 CodeFirst 创建一个数据库。我想在 WPF 应用程序中使用数据库,因此实体类应该实现“INotifyPropertyChanged”。
这可以使用 PostSharp 方面非常优雅地完成,每次属性更改时都会自动触发 PropertyChanged 事件。如果我创建这样一个方面并在我的实体类上使用它,我会在尝试创建数据库时得到以下异常:
\tSystem.Data.Entity.Edm.EdmNavigationProperty: Name: The specified name is not allowed: '<Name>k__BackingField'.
显然 PostSharp 创建了一个名为“k__BackingField”的属性,这会导致数据库创建失败,因为从 EntityFramework 的角度来看,它是一个无效的名称。有没有办法避免这个错误,而无需在每个实体类中手动实现“INotifyPropertyChanged”?
PS:英语不是我的母语,如果您告诉我我的帖子中可能存在的错误,我将非常感激。
先感谢您