2013-09-16 30 views
6

Tôi đang sử dụng nhà cung cấp Firebird ADO.NET với Entity Framework, nhưng câu hỏi này cũng sẽ áp dụng cho các nhà cung cấp khác.Điều kiện thiết lập trường Nhận diện khi chèn với Khuôn khổ thực thể

Tôi có một lĩnh vực trên mô hình của tôi như sau

[Column("JOBNO"), DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public int JobNo { get; set; } 

Trong cơ sở dữ liệu tôi có một 'trên chèn' cò mà cập nhật JOBNO lĩnh vực sử dụng một máy phát điện nếu JOBNO được thiết lập để NULL

Bằng đặt thuộc tính DatabaseGenerated thành DatabaseGeneratedOption.Identity trên trường của mô hình của tôi, khung thực thể sẽ lấy chính xác số JOBNO từ cơ sở dữ liệu khi chèn.

Tuy nhiên đôi khi tôi muốn chỉ định cột JOBNO theo cách thủ công khi chèn, nhưng EF không hiểu và chỉ sử dụng giá trị được tạo.

Có cách nào để cho phép cài đặt có điều kiện này của trường DataBaseGenerated không?

Trả lời

0

Tôi sợ có không có cách nào để thực hiện cài đặt có điều kiện cho trường DataBaseGenerated!

Tùy chọn thứ nhất: Có hành vi của trình kích hoạt chèn được chuyển vào ứng dụng của bạn (thay vì cơ sở dữ liệu), theo cách này bạn sẽ luôn tạo id từ ứng dụng.

tùy chọn thứ 2: không phải là để xác định danh tính và để lại như NULLABLE trên đường database.This bạn sẽ cho phép EF để nhận dữ liệu và khi nó không nhận bạn nhận được giá trị từ cò. (Nhưng hãy chắc chắn để thay đổi kích hoạt để nó chỉ tạo ra một id mới khi nó không được cung cấp!)

Các vấn đề liên quan