2011-12-29 4 views

Odpowiedz

7

Błąd mówi, że twoja kolumna w tabeli/widoku nie jest zerowalna, ale właściwość klasy w modelu encji jest zerowa. Oba muszą być albo nullable albo nullable.

+0

Jak zmienić kolumnę w tabeli, aby była zerowalna? (w edmx nie w bazie danych - zmieniłem już ich) – markmnl

+1

to jest bardzo denerwujące. zmieniłem kolumnę tabeli z nullable na non-nullable i zaktualizowałem mój model z bazy danych. ale wygląda na to, że nie zmienia ona właściwości entity na non-nullable i ciągle otrzymuję ten błąd. –

+7

@SonicSoul Mam ten sam problem. To denerwujące. Naprawiłem to, usuwając wszystkie tabele od projektanta i ponownie je dodając. –

8

odświeżyć tabelę w swojej edmx z bazy danych (w przeglądarce modelu kliknij prawym przyciskiem myszy -> Aktualizuj Model z bazy danych -> zakładka Aktualizacja -> wybierz tabelę -> kliknij aktualizacji)

1

I dostałem ten problem po zmianie kolumny nieważnej na nullable. Co rozwiązać to dla mnie był następujący:

  1. ręcznie edytować kolumnę i link kolumna musiała do innej tabeli (0 ... 1) w pliku .edbx.
  2. Po ręcznej edycji należy wykonać opis tabeli aktualizacji, takiej jak DRM.

Jedno z tych działań nie rozwiązało mojego problemu (wydaje się być usterką). Mam nadzieję, że to może komuś pomóc.

+0

W moim przypadku (EF 3.5 nadal) hack był w .edmx. – Tim

0

Jest to na EF 4.5, który znajduję to, poprzednie wersje mogą nie mieć tego dokładnego problemu.

DRM wspomina o sposobie jego aktualizacji, ale odkryłem, że czasami nawet po aktualizacji niektórych drobnych zmian, takich jak przełączanie wymaganych pól lub zmiana nazw pól, nie zmienia się ich w edmx nawet po aktualizacji to. Dlatego twoje modele danych nie pasują dokładnie do bazy danych.

Znalazłem najlepszy sposób, aby upewnić się, że twoje modele encji edmx są poprawne, to usunąć edmx i ponownie je dodać. Po zrobieniu bazy danych pierwszego podejścia na EF 4.5 myślę, że Entity wydaje się grać ładniej z pierwszym podejściem kodu zamiast bazy danych.

1

Wystarczy usunąć konkretną tabelę z modelu i dodać ją ponownie. To rozwiąże twój problem.

0

Jeśli chcesz zachować zapis. Tylko cofnąć usuwa błąd inaczej przebudowany stół

0

mam go rozwiązać poprzez 1. Usuń poszczególnych tabel z modelu 2. Kliknij prawym przyciskiem myszy na modelu, wybierz model aktualizacji z bazy danych, wybierz usuniętych tabel i wykończenie przyciskiem.