W moim SQL schematu bazy danych serwera Mam tabelę danych z zakresu dat, który zawiera wartość domyślnąJak używać domyślnego Entity Framework i domyślną datę wartości
CONVERT(VARCHAR(10), GETDATE(), 111)
który jest idealny do automatycznego wstawiania daty do nowego rekordu przy ręcznym wprowadzaniu rekordów do bazy danych.
Problem polega na tym, że podczas korzystania z Entity Framework i mapowania pola Date, Entity Framework wstawia domyślną wartość DateTime.Min, gdy jednostka jest tworzona.
Nie mogę odwzorować pola daty na wartość zerową DateTime, tzn. DateTime ?, ani też nie można użyć opcji CONVERT lub DateTime.Now.Today w domyślnej wartości Entity Designer, ponieważ akceptuje tylko stałe wartości stałe .
Oczywiście mogę jawnie ustawić pole DateTime w C# za każdym razem, gdy obiekt zostanie utworzony, jawnie w kodzie, w konstruktorze klasy częściowej lub nawet podczas zapisywania zmian.
Czy istnieją inne sposoby osiągnięcia tego, co chcę, gdy zamiast tego używane jest domyślne obliczenie wartości przechowywane w tabeli bazy danych?
Możesz spróbować ustawić pole jako wygenerowane automatycznie. Nigdy tego nie próbowałem i nie jestem pewien, jak dobrze by to działało. –
Rozejrzałem się po projekcie EDM i nie widziałem żadnych opcji, elementów menu ani właściwości, które mogłem opisać jako oferowanie tego. Gdzie znajdę "ustawione pole jako wygenerowane automatycznie" w projektancie? Zakładam, że odwołujesz się do projektanta, a nie do czegoś w SQL Server. A może masz na myśli "obliczoną specyfikację kolumny?" – Justin
http://msdn.microsoft.com/en-us/library/dd296755.aspx –