RIA/EF4实体属性映射到NOT NULL nvarchar - 空字符串

Kor*_*tak 10 string silverlight ria entity-framework

背景:

  • 实体框架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();
Run Code Online (Sandbox Code Playgroud)

然而,这引起了例外 "The Description field is required."

题:

"空字符串"不应该只是 - 一个字符为零的字符串吗?

我认为只Description = null应视为没有价值.

  • 为什么我的字符串有一个值(虽然它的长度为0),被认为是我省略了值?
  • 这种转换发生在什么程度?在RIA上,在EF上还是在MSSQL中?
  • 当我设置Description to ""并且Description = null(没有值)时导致异常时,有没有办法使描述具有零长度值?

Nic*_*dke 9

这似乎是实体框架的一个症状.

相关文章

一些数据注释可用于克服这个问题:

[MetadataType(typeof(Report_META))]
   public partial class Report
   {
   }

   public partial class Report_META
   {
       [Required(AllowEmptyStrings = true)]
       [DisplayFormat(ConvertEmptyStringToNull = false)]
       public object Note { get; set; } 
    }
Run Code Online (Sandbox Code Playgroud)