mvc3数据库第一个模型默认值

时间:2012-08-28 23:12:28

标签: c# asp.net-mvc-3 entity-framework

我有一个数据库第一个设计。我希望我的模型具有默认值,以便用户可以将编辑器文本框留空以查找我的一个可空字段。 EF似乎不想将null抛入数据库,所以我希望我可以为我的可空属性设置默认值为null。

即如果文本框在提交时保留为空,我想在属性数据库中插入null。

我已经读过你可以在部分类中添加一个构造函数来做我想做的事情。所以你基本上有:

public partial class MyClass{
    public MyClass()
    {
        field1 = null; //this would be the default value for field1
    }
}

唯一的问题是我正在处理的模型的自动生成的partial类已经有一个构造函数,所以我不能将构造函数添加到另一个(永久)的partial类。我不想更新自动生成的partial类,因为当我从数据库更新edmx时它只会被覆盖。

1 个答案:

答案 0 :(得分:0)

字符串的默认值应该已经为空,所以我认为你走的是错误的路径。

问题是文本框将始终与表单发布一起传递,即使它是空白的,这将导致控制器中的空字符串而不是空值,即使您找到了明确设置字符串的方法在你的初始班级中为null。

相反,在回发表单后检查控制器中字符串的值,如果为空,则将其设置为null。

if (String.IsNullOrEmpty(formModel.MyString)) formModel.MyString = null;

或者,或者在模型绑定期间创建默认模型绑定器以检查字段的值,如果它是空的则不设置它。