请阅读此处和此处以快速了解我的问题,并准确了解我所说的 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主体。