Tworzę bazę danych przy użyciu Microsoft Entity Framework i CodeFirst w języku C#. Chcę korzystać z bazy danych w aplikacji WPF, więc klasy jednostek powinny implementować "INotifyPropertyChanged".PostSharp wstawia k__Backing Field do klasy Entity, powodując niepowodzenie generowania baz danych
Można to zrobić bardzo elegancko za pomocą aspektu PostSharp, który wyzwala zdarzenie PropertyChanged automatycznie za każdym razem, gdy zmienia się właściwość. Gdybym stworzyć taki aspekt i używać go na moich zajęciach jednostki, pojawia się następujący exeption podczas próby utworzenia bazy danych:
\tSystem.Data.Entity.Edm.EdmNavigationProperty: Name: The specified name is not allowed: '<Name>k__BackingField'.
Oczywiście PostSharp tworzy właściwość o nazwie „k__BackingField”, co powoduje tworzenie bazy danych się nie powiedzie, ponieważ jest to nieprawidłowa nazwa z punktu widzenia EntityFramework. Czy istnieje sposób na obejście tego błędu bez ręcznego wdrażania "INotifyPropertyChanged" w każdej pojedynczej klasie jednostki?
P.S: Angielski nie jest moim ojczystym językiem, byłbym bardzo wdzięczny, gdybyś poinformował mnie o możliwych błędach w moich postach.
góry dziękuję
k__Backingfield nie jest generowany przez bij postsharp, ale przez kompilator C#, gdy używasz automatycznie zaimplementowanej właściwości. – albertjan
To może być prawda, ale jeśli wyłączę PostSharp, błąd już nie występuje. W jakiś sposób musi istnieć związek między błędem a PostSharp. – BoltzmannBrain
Czy próbowałeś zmienić system z automatycznej implementacji na pole z zapleczem? – albertjan