2012-11-05 38 views
12

Ở EF, tôi có thể thêm ràng buộc kiểm tra vì vậy nếu thực thể CustomerNotes của tôi có thuộc tính "FollowUpRequired" boolean tôi buộc người dùng nhập ngày trong tương lai hợp lệ vào thuộc tính "FollowUpDate"?kiểm tra khung pháp lý ràng buộc

Trả lời

13

EF hiện không hỗ trợ Ràng buộc kiểm tra.

Tức là, bạn không thể áp dụng thuộc tính cho một thực thể và mong đợi nó tạo ra SQL thích hợp để tạo dấu kiểm Kiểm tra trong cơ sở dữ liệu bên dưới.

Một cách để khắc này khi sử dụng Mã First Data Migrations (http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-code-based-migrations-walkthrough.aspx) là để tạo ra một sự chuyển đổi và thêm một dòng Sql() trong override Up() chức năng được tạo ra

ví dụ

public override void Up() 
{ 
    // Auto generated code here 
    // ... 

    // YOUR CUSTOM SQL GOES HERE 
    Sql("ALTER TABLE foo ADD CONSTRAINT CK_Some_Check CHECK (SomeDate > '20121110 00:00:00.000'");** 
} 

Cũng thấy câu hỏi này và câu trả lời đối với một số thông tin thêm: Is it possible to express a check constraint?

+0

blog được di chuyển, vì vậy thêm lệnh ở đâu? – deadManN

+1

Tôi đã cập nhật câu trả lời để chỉ ra nơi mã đi. Để biết thông tin, tôi đã tìm thấy phiên bản đã lưu trữ của bài đăng blog gốc tại đây: https://archive.li/pmkxH#selection-4371.2-4391.10 –

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