实体
我们有一个名为 Product 的实体,它是使用 NHibernate 加载的。
产品有一个类别,NHibernate 很乐意为我填充。
数据库
在数据库中,产品有一个类别的外键。
设想
用户编辑此产品(通过网络界面)并选择不同的类别(例如,我们选择“蔬菜”而不是“鱼”)。
这可能是一个下拉列表,显示了每个类别。当他们选择不同的类别时,我们会得到一个 int 键。
问题
显然我们现在想要保存对 Product 的更改,但实际上唯一的更改是保存一个新的 int(比如 2,而不是 1)。
所以我们检索现有的产品,现在问题来了。
我们在 Product 上没有“CategoryID”字段,我们只有一个 Category 属性。
但我们并不是真的想检索类别(按 id)只是为了将其分配给产品。
所以我想我想知道的是我们应该...
a) 将 CategoryID 属性添加到 Product
b) 创建一个新类别,为其分配相关 id 并将其附加到 Product (但这肯定会导致错误,或覆盖现有类别)
c) 从系统中检索(查找)类别(按 id)并将其附加到产品
d) 完全做其他事情!