Mam problem z kluczami podstawowymi w Entity Framework podczas korzystania z SQLite. SQLite żąda jawnej wartości NULL na liście VALUES w kolumnie kolumny z autodestrukcyjnym kluczem głównym. W rzeczywistości nie patrzyłem na wygenerowany kod SQL w kontekście EF, ale uważam, że dzieje się to zgodnie ze zwykłą konwencją SQL Server, która nie dostarcza wartości dla kolumny autokorelacji.SQLite z Entity Framework
Zgodnie z site dla dostawcy SQLite ADO.NET, EF jest w pełni obsługiwany, ale nie znajduję tam żadnej pomocy. Czy istnieje sposób zmuszenia EF do jawnego wstawiania wartości NULL dla wartości klucza podstawowego?
Jestem w tej samej sytuacji. Próbowałem zastąpić długo na długo? w wygenerowanym kodzie, więc mogłem przynajmniej ustawić wartość null, ale to nie zadziałało. Komunikat o błędzie: "Zmiany w bazie danych zostały zatwierdzone pomyślnie, ale wystąpił błąd podczas aktualizowania kontekstu obiektu.Zamiast ObjectContext może być niespójny.Wewnętrzny komunikat wyjątku: Pary klucz-wartość, które definiują klucz EntityKey, nie mogą mieć wartości null lub pusty. \ r \ n Nazwa parametru: record ". Wydaje się, że nie ma sposobu, aby ominąć to, sqlite sposób obsługi autoinkrementacji jest trochę dziwny. – Pablote
Zrezygnowałem z SQLite w połączeniu z EF. Istnieje post na temat tego samego problemu na forach w serwisie System.Data.Sqlite, ale nie było ruchu ani odpowiedzi przez jakiś czas. Przeniosłem się do SQL Compact, który przedstawia własne problemy. Nie można wykonywać "kluczy generowanych przez serwer" za pomocą EF/SQLCompact. Tak więc, na razie używam standardowego ADO dla ADO dla insertów i używam EF dla cukru LINQ. –
To jest do bani. Sądzę, że ta sama "sztuczka" może być użyta w sqlite. Przetestowałem autoinkrementację z CE i linq do sql i wygląda na to, że działa. Nie próbowałem go z sqlite, nie jestem pewien, czy to nawet możliwe. – Pablote