10
背景:RIA/EF4實體屬性映射到NOT NULL nvarchar的 - 空字符串
- 實體框架4
- 的Silverlight 4
- RIA服務
- MSSQL Server 2008的
我有一個名爲Description的String屬性的實體。
在數據庫中它映射到NOT NULL NVARCHAR(200)
。
問題:
當我嘗試插入實體的一個新行,這是我做的:
MyExampleEntity entity = new MyExampleEntity()
{
Name = "example",
Description = "" // NOTE THIS LINE!
};
DatabaseContext db = new DatabaseContext();
db.MyExampleEntities.Add(entity);
db.SubmitChanges();
然而,這會導致異常說"The Description field is required."
問題:
不應該「空字符串「就這麼簡單 - 一個零字符的字符串?
我相信,只有Description = null
應被視爲提供沒有價值。
- 爲什麼我的字符串,它有一個值(雖然它的長度爲0),被認爲是好像我已經省略了值?
- 此轉換髮生在什麼級別?在RIA上,在EF或MSSQL中?
- 當我設置
Description to ""
並導致例外Description = null
(沒有值)時,是否有辦法使描述具有零長度值?
它的工作原理,謝謝。 –
請注意,如果您使用這些規則,[[Required]'屬性可能與FluentValidation規則衝突,因爲它們也可以添加該屬性,並且您一次只能有一個屬性實例([http:// stackoverflow.com/a/5552237/1454265](http://stackoverflow.com/a/5552237/1454265))。我可以解決這個問題,並通過從MetadataType類中刪除'[Required]'屬性並添加一個條件規則來驗證:'RuleFor(x => x.Field).Etc(...) .When(x =>!string.IsNullOrWhitespace(x.Field);' – user1454265