Bối cảnh:tài sản RIA/EF4 Entity ánh xạ tới KHÔNG nvarchar NULL - chuỗi rỗng
- Entity Framework 4
- dịch vụ Silverlight 4
- RIA
- MSSQL Server 2008
Tôi có một thực thể có một thuộc tính String có tên là Mô tả.
Trong cơ sở dữ liệu, nó ánh xạ tới NOT NULL NVARCHAR(200)
.
Vấn đề:
Khi tôi cố gắng để chèn một dòng mới của thực thể đó, đây là những gì tôi làm:
MyExampleEntity entity = new MyExampleEntity()
{
Name = "example",
Description = "" // NOTE THIS LINE!
};
DatabaseContext db = new DatabaseContext();
db.MyExampleEntities.Add(entity);
db.SubmitChanges();
này, tuy nhiên, nguyên nhân một ngoại lệ nói "The Description field is required."
Câu hỏi:
Không được để trống chuỗi "đơn giản là - một chuỗi có 0 ký tự?
Tôi tin rằng chỉ Description = null
nên được coi là cung cấp không có giá trị.
- Tại sao chuỗi của tôi có giá trị (mặc dù chiều dài của nó bằng 0), được coi như thể tôi đã bỏ qua giá trị?
- Chuyển đổi này xảy ra ở cấp độ nào? Trên RIA, về EF hoặc trong MSSQL?
- Có cách nào để tạo mô tả có giá trị độ dài bằng không khi tôi đặt
Description to ""
và gây ra ngoại lệ khiDescription = null
(không có giá trị)?
Nó hoạt động, cảm ơn. –
Lưu ý rằng thuộc tính '[Bắt buộc]' có thể va chạm với các quy tắc FluentValidation nếu bạn đang sử dụng chúng, vì chúng cũng có thể thêm thuộc tính, và bạn chỉ có thể có một cá thể của thuộc tính tại một thời điểm ([http: // stackoverflow.com/a/5552237/1454265] (http://stackoverflow.com/a/5552237/1454265)). Tôi đã có thể vượt qua điều này và cho phép các chuỗi rỗng bằng cách bỏ thuộc tính '[Required]' từ lớp MetadataType và thêm một quy tắc có điều kiện vào việc xác thực: 'RuleFor (x => x.Field) .Etc (...) .Khi (x =>! String.IsNullOrWhitespace (x.Field); ' – user1454265