提交空字段时实体框架错误

Oma*_*mar 6 .net-4.0 .net-4.0-beta-2 asp.net-mvc-2

VS 2010 Beta 2,.NET 4.

在我的ASP.NET MVC 2应用程序中,当我将表单提交给接受实体框架创建的对象的操作方法时,我收到以下错误:

Exception Details: System.Data.ConstraintException: This property cannot be set to a  
null value.

Source Error: 


Line 4500:                OnTextChanging(value);
Line 4501:                ReportPropertyChanging("Text");
Line 4502:                _Text = StructuralObject.SetValidValue(value, false);
Line 4503:                ReportPropertyChanged("Text");
Line 4504:                OnTextChanged();
Run Code Online (Sandbox Code Playgroud)

该属性称为"Text",在MS SQL 2008中的类型为"text NOT NULL".

我的操作将检查值是否为nullorempty,如果是,则会添加模型错误,但是一旦我提交表单,我就会收到错误.

Cra*_*ntz 8

你是否直接绑定到实体?当然看起来像.所以你有两个选择:

  1. 编写一个自定义模型绑定器,它可以转换null - >空字符串.
  2. 绑定到允许空值的编辑模型,然后在将值复制到操作中的实体时将其更改为空字符串.

亲自选择#2.我认为你应该总是使用视图/编辑模型,这是一个很好的例子.