为了简化 Ajax 的模型绑定而允许数据库表为空字段是不好的做法吗?
-
16-09-2019 - |
题
请阅读 这里 和 这里 快速了解我的问题并准确了解我所说的 Ajax 模型绑定的含义。
为了允许来自 javascript 的模型绑定而使外键字段可为空是一个坏主意吗?
例如,我们想要在 ajax 调用期间绑定到 Person 对象...(Person 类是从实体框架创建的)
public ActionResult Create(Person personToCreate)
{
//Create person here
}
如果 Person
有一个 Pet
对象是数据库中的外键,您不能传递 Pet
对象以及来自 ajax 调用的其他数据。所以除非 Pet
在数据库中可以为空,绑定到 Person
行不通的。
所以我想知道的是...为了进行模型绑定, 我应该/可以清空我无法从 javascript 传递的数据库字段吗? 或者我是否必须创建一个自定义模型绑定器并绑定到对象的“扁平”版本才能遵循最佳实践?对象的扁平版本示例:
public class SimplePerson() {
private string firstName;
private string lastName;
private string petName;
}
我问这个问题的原因是因为我的许多实体框架创建的类都包含外键,这意味着我需要创建几乎所有这些类的平面副本,这似乎违背了整体 干燥 主要的。
解决方案
我读了您链接什么,贴出来,我真的不能想到一个很好的解决了我的头顶部,但改变基础数据库对AJAX的缘故整体概念让我不舒服。我知道这是不是一个伟大的答案,我和几个EF的设计问题苦苦挣扎,现在我自己也有过,当我一直很想来修改数据库模型的缘故好几次,但这样做,一直来回咬我过去。
不隶属于 StackOverflow