Próbuję dodać właściwość CreatedDate
do elementów w moim modelu i używam najpierw kodu EF5. Chcę, aby ta data nie uległa zmianie po ustawieniu, chcę, aby była to data UTC. NIE chcę używać konstruktora, ponieważ mam wiele elementów w moim modelu, które chcę dziedziczyć po klasie abstrakcyjnej zawierającej właściwość CreatedDate
i nie mogę wymusić konstruktora z interfejsem.Dodawanie obiektu CreatedDate do encji przy użyciu Entity Framework 5 Code First
Próbowałem różnych adnotacji danych i próbowałem napisać inicjator bazy danych, która będzie odebrać szczególnego rodzaju podmiotu i napisać alter ograniczenie o getdate()
wartości domyślnej dla prawidłowego table_name
i column_name
, ale nie były w stanie napisać ten kod poprawnie.
Proszę nie odsyłać mnie do narzędzi AuditDbContext - Entity Framework Auditing Context lub EntityFramework.Extended, ponieważ nie robią tego, czego potrzebuję.
UPDATE
Moja CreatedDate
jest zerowy na SaveChanges()
bo jestem przechodzącej ViewModel do mojego widoku, który właściwie nie ma właściwość o nazwie CreatedDate
audytu w nim. I nawet jeśli przekazałem model do mojego widoku, nie edytuję ani nie przechowuję w widoku obrazu CreatedDate
.
czytam here, że mogę dodać [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
a to powie EF przechowywać CreatedDate
poprawnie po Insert i Update, ale nie pozwolić mu zostać zmieniona przez mojego wniosku: ale ja po prostu błąd Cannot insert explicit value for identity column in table when IDENTITY_INSERT is set to OFF
dodając ten atrybut .
Mam zamiar przejść do modelu EF Najpierw, ponieważ ten prosty wymóg bazy danych jest absurdalny do wdrożenia w Code First.
Tylko jeśli nie przeszkadzają ci adnotacje na twoich zajęciach, zamiast tego użyłem odpowiedzi metody SaveChanges. – Maslow
@Rusty Divine: Z jakiegoś powodu zawsze ustawia go na 01/01/1900 12:00:00 AM –
Znalazłem lepszy sposób to zrobić tutaj: https://andy.mehalick.com/2014/02/06/ ef6-dodawanie-utworzonej-datetime-kolumny-automatycznie-z-pierwszym-migracją kodu – Dragouf