C#でMicrosoft Entity FrameworkとCodeFirstを使用してデータベースを作成しています。 WPFアプリケーションでデータベースを使用したいので、Entity-Classesは "INotifyPropertyChanged"を実装する必要があります。PostSharpがエンティティクラスにk__Backingフィールドを挿入したため、データベース生成が失敗する
これは、PostSharpのアスペクトを使用すると非常に優雅に行うことができます。これは、プロパティが変更されるたびにPropertyChangedイベントを自動的にトリガします。私は、このような様相を作成して、私のエンティティクラスでそれを使用する場合は、データベースを作成しようとしたとき、私は次のexeptionを得る:
\tSystem.Data.Entity.Edm.EdmNavigationProperty: Name: The specified name is not allowed: '<Name>k__BackingField'.
明らかPostSharpは、データベースの作成が失敗する原因となる「k__BackingField」というプロパティを作成しますそれはEntityFrameworkの観点からは無効な名前だからです。すべての単一のEntity-Classで "INotifyPropertyChanged"を手動で実装せずにこのエラーを回避する方法はありますか?
P.S:英語は母国語ではありません。あなたの投稿に間違いがあった場合は、非常に感謝しています。
は
k__Backingfieldはbij postsharpではなく、自動実装されたプロパティを使用するとc#コンパイラによって生成されます。 – albertjan
これは当てはまりますが、PostSharpを無効にしてもエラーは発生しなくなりました。どういうわけか、エラーとPostSharpの間に関係がなければなりません。 – BoltzmannBrain
自動実装されたプロパティからバッキングフィールド付きのプロパティに切り替えることを試みましたか? – albertjan