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