Kiedy jestem zapisywania zmian do bazy danych, biegnę w następującym wyjątkiem:Entity Framework 6 Kod Pierwsza wartość domyślna datetime na wkładce
Cannot insert the value NULL into column 'Registered', table
'EIT.Enterprise.KMS.dbo.LicenseEntry'; column does not allow nulls.
INSERT fails. The statement has been terminated.
dany przepis pierwszą nieruchomość wzór wygląda następująco:
[DatabaseGenerated(DatabaseGeneratedOption.Identity), DataMember]
public DateTime Registered { get; private set; }
... a oto dlaczego jestem zdezorientowany: o ile wiem, dostarczając adnotacji [DatabaseGenerated(DatabaseGeneratedOption.Identity)
jestem zamawiania Entity Framework do automatycznego generowania pola (w tym przypadku: tylko raz w momencie tworzenia .)
Spodziewam się więc, że pole nie będzie podlegało zerowaniu (wymagane), bez możliwości ręcznego zmieniania pola, w którym zajmuje się EF.
Co robię źle?
Uwagi:
- Nie chcę użyć Fluent-API, jak chcę użyć Poços.
- Właściwość
defaultValueSql
również nie jest opcją, ponieważ muszę polegać na bazie danych niezależnej dla tego projektu (np. DlaGETDATE()
). - Używam Entity Framework 6 alpha 3, Code First.
Czy AutoGenerate jest również kluczem podstawowym? Jeśli tak, musisz podać adnotację [key]. – Botonomous
Nie. To tylko własność. – Atrotygma
Nie wierzę, że typ danych DateTime ma obsługę atrybutu pola tożsamości. – marcellscarlett