2012-11-05 9 views

Odpowiedz

13

EF nie obsługuje obecnie sprawdzeń ograniczeń.

Oznacza to, że nie można zastosować atrybutu do jednostki i oczekiwać, że wygeneruje odpowiedni kod SQL w celu utworzenia polecenia Check w bazowej bazie danych.

Sposobem na to przy użyciu kodu pierwsze dane Migrations (http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-code-based-migrations-walkthrough.aspx) jest generowanie migrację i dodać linię Sql() w ręcznym Up() funkcji, która jest generowana

np

public override void Up() 
{ 
    // Auto generated code here 
    // ... 

    // YOUR CUSTOM SQL GOES HERE 
    Sql("ALTER TABLE foo ADD CONSTRAINT CK_Some_Check CHECK (SomeDate > '20121110 00:00:00.000'");** 
} 

zobaczyć również na to pytanie i odpowiedź na dalsze informacje: Is it possible to express a check constraint?

+0

blog jest przesuwany, więc dodać komendę gdzie? – deadManN

+1

Zaktualizowałem odpowiedź, aby wskazać, gdzie znajduje się kod. Aby uzyskać informacje, znalazłem zarchiwizowaną wersję oryginalnego wpisu na blogu tutaj: https://archive.li/pmkxH#selection-4371.2-4391.10 –