Dodałem EntityFramework.Migrations (Beta 1) do istniejącej aplikacji Code-First, która przechodzi pewne zmiany (zarówno w zakresie możliwości migracji, jak i dokładniejszego dostosowania tabel generowanych przez mój pierwszy API) i wpadła na scenariusz GETDATE().Możliwe do domyślnego pola DateTime do GETDATE() z Entity Framework Migrations?
Już używałem niestandardowej klasy inicjalizacyjnej w moim DbContext, aby uruchomić skrypty SQL, aby ustawić niektóre pola i utworzyć indeksy w mojej bazie danych. Garść moich skryptów AlterTable jest podstawowa tylko do ustawienia pól z wartościami domyślnymi (takimi jak pewne pola DateTime ustawione na GETDATE()). Naprawdę miałem nadzieję, że EntityFramework.Migrations będzie miał na to odpowiedź, ponieważ możesz łatwo określić defaultValue, ale jak dotąd nie widzę żadnej.
Wszelkie pomysły? Naprawdę miałem nadzieję, że wykonanie poniższych czynności będzie magicznie skuteczne. (To jest „magiczny jednorożec”, mimo wszystko)
DateCreated = c.DateTime(nullable: false, defaultValue: DateTime.Now)
Niestety, i logicznie, to ustawić moją domyślną wartość do czasu, gdy komenda Update-Database
został stracony.
Nie szukam do dostania się do teorii krążących wokół”... za pomocą ORM nie powinieneś umieszczać logiki w bazie danych ... ". Rozumiem, że. Po prostu chcę się upewnić, że nikt nie odrzuci przykładu POCO z DateTime.Now w konstruktorze :) – adammokan
po prostu miał podobne prawdopodobnie i znalazł dobre rozwiązanie. Mam nadzieję, że to pomoże: http://stackoverflow.com/questions/9830216/ef-4-3-1-migration-exception-altercolumn-defaultvaluesql-creates-same-default/ –