我有一个最近从1.0升级到2.0的asp.net MVC应用程序。我使用Linq-to-Sql数据模型,在很多情况下,我一直使用它们作为我的模型对象,因为它很简单,似乎工作...
我有一个与两个子表有外键关系的类 - 这些子表并不总是被填充(即外键可以为空)。
我的代码(稍微简化)看起来像这样:
/// This would be the generated linq-to-sql class
public class ModelObject
{
//Bunch of properties
public ChildObject { get; set; }
public ChildObject2 { get; set; }
}
public ActionResult Edit(int ID)
{
//Get the current saved object
ModelObject test = _service.GetModelObject(ID);
UpdateModel(test);
}
自升级到2.0以来,我发现updateModel调用已经实例化了两个子对象 - 然后我的save失败了,因为其中一些空字段不可为空。这在升级之前没有发生过。
有没有办法阻止这种情况发生(或者是否有人指出为什么自升级以来这种情况开始发生)?
答案 0 :(得分:0)
您可以通过在UpdateModel()调用中指定要从绑定中排除的属性作为参数来阻止这种情况发生:
UpdateModel(test, null, null, new [] { "ChildObject", "ChildObject2"});
您可以从MSDN获取更多信息。