Tôi đang gặp sự cố với các khóa chính trong Khuôn khổ thực thể khi sử dụng SQLite. SQLite muốn một NULL rõ ràng trong danh sách VALUES trên một cột khóa tự động chính. Tôi đã không thực sự nhìn vào SQL tạo ra trong bối cảnh EF, nhưng tôi tin rằng nó đi với quy ước SQL Server thông thường của việc cung cấp không có giá trị cho cột autoincrementing.SQLite với Entity Framework
Theo số site cho nhà cung cấp ADO.NET SQLite, EF được hỗ trợ đầy đủ nhưng tôi không tìm thấy trợ giúp ở đó. Có cách nào để buộc EF để chèn một NULL cho giá trị khóa chính?
Tôi đang ở trong cùng một tình huống. Tôi đã thử thay thế lâu dài? trong mã được tạo ra, vì vậy tôi có thể ít nhất thiết lập bản thân null, nhưng nó không hoạt động. Thông báo lỗi: "Các thay đổi đối với cơ sở dữ liệu đã được thực hiện thành công, nhưng đã xảy ra lỗi trong khi cập nhật bối cảnh đối tượng. ObjectContext có thể ở trạng thái không nhất quán. Thông báo ngoại lệ bên trong: Cặp khóa-giá trị xác định EntityKey không thể là rỗng hoặc trống. \ r \ n Tên tham số: bản ghi ". Có vẻ như theres không có cách nào để bỏ qua này, cách xử lý sqlite autoincrement là kinda wierd. – Pablote
Tôi đã từ bỏ SQLite kết hợp với EF. Có một bài viết về vấn đề này rất lớn trên các diễn đàn tại trang web cho System.Data.Sqlite nhưng không có chuyển động hoặc phản ứng trong một thời gian. Tôi chuyển sang SQL Compact, trình bày các vấn đề của riêng nó. Bạn không thể làm "các khóa do máy chủ tạo" với EF/SQLCompact. Vì vậy, bây giờ tôi làm tiêu chuẩn kết nối/Command-phong cách ADO cho chèn và tôi đang sử dụng EF cho đường LINQ. –
Điều này thật tệ. Tôi đoán cùng một 'thủ thuật' có thể được sử dụng trong sqlite. Tôi đã thử nghiệm autoincrement với CE và LINQ để sql và nó có vẻ làm việc. Đã không thử nó với sqlite, không chắc chắn nếu nó thậm chí có thể. – Pablote