2

请阅读此处此处以快速了解我的问题,并准确了解我所说的 Ajax 模型绑定的意思。

为了允许来自javascript的模型绑定,使外键字段可以为空是不是一个坏主意?

例如,我们想在 ajax 调用期间绑定到 Person 对象...(Person 类是从实体框架创建的)

public ActionResult Create(Person personToCreate)
{
    //Create person here
}

如果Person有一个Pet对象是数据库中的外键,则不能将该Pet对象与来自 ajax 调用的其他数据一起传递。因此,除非Pet在数据库中可以为空,否则绑定到Person将不起作用。

所以我想知道的是......为了进行模型绑定,我应该/可以将我无法从 javascript 传递的 db 字段清空吗?或者我是否必须制作自定义模型绑定器并绑定到对象的“扁平”版本才能遵循最佳实践?对象的扁平版本示例:

public class SimplePerson() {
   private string firstName;
   private string lastName;
   private string petName;
}

我问这个的原因是因为我的许多实体框架创建的类都包含外键,这意味着我需要创建几乎所有这些类的平面副本,这似乎违背了整个DRY主体。

4

1 回答 1

2

我阅读了您链接和发布的内容,我真的想不出一个好的解决方案,但是为了 AJAX 而更改底层数据库的整个概念让我感到不舒服。我知道这不是一个很好的答案,我自己现在正在努力解决几个 EF 设计问题,并且有好几次我试图为了模型而修改数据库,但这样做总是会发生回来咬我过去。

于 2009-07-15T20:17:49.563 回答