To mnie doprowadza do szału, a błąd jest dla mnie zupełnie bez znaczenia:
Nie można zaktualizować EntitySet „TableB”, ponieważ ma on DefiningQuery i nie ma elementu w elemencie do obsługi bieżącej operacji.
Moje tabele są ułożone w następujący sposób:
Tabela A. int idA (tożsamość, klucz podstawowy) ... Tabela B. int idA (FK dla TableA.idA) int val
TableB nie ma zdefiniowanego klucza podstawowego na serwerze SQL. Entity Framework zaimportował tabelę i skojarzenie oraz ustawił oba pola jako klucz. Ale wyświetli ten błąd, gdy spróbuję wstawić do tabeli!
Co jest nie tak??
Edycja: zgodnie z sugestią Alexa rozwiązanie było następujące:
- Kliknij prawym przyciskiem myszy plik edmx, wybierz Otwórz za pomocą, edytor XML
- Znajdź jednostkę w elemencie edmx: StorageModels
- Całkowicie usuń DefiningQuery
- Zmień nazwę sklepu: Schema = „dbo” na Schema = „dbo” (w przeciwnym razie kod wygeneruje błąd informujący, że nazwa jest nieprawidłowa)
- Usuń właściwość store: Name
Zostawiłem klucz tak, jak był, ponieważ było dla mnie OK, że obie kolumny są częścią klucza.