nhibernate:需要在Update <t>(T实体)之前附加引用吗?</t>

时间:2010-10-13 20:38:16

标签: nhibernate fluent-nhibernate

我正在使用nHibernate i de back-end构建一个n层系统,并且正在使用REST / json与前端进行交互。

当我将对象发送到后端时,我只发送如下数据:

myAddress: [

{ guid: "1", street: "MyHomeStreet",

houseNumber: "34",

city: "6" }

]

所以,我只发送引用的城市实体的ID。 当我将其反序列化到我的实体(服务器端,到达时)时,我丢失了这个数字,因为服务器端的引用是一个真实对象,而不是一个ID,并且变为空。

然后NHibernate会更新地址但删除数据库中的引用。

所以我真的需要使用relection来获取我的实体来获取al引用属性,然后使用ID(本例中为6)来检索本地城市实体(DAO.Get(6))并设置所有在执行DAO.Update(myAddress)之前的引用???

如果每次服务器收到更新时我必须获取所有引用(来自缓存或数据库),这对于实现更新来说实在是太过分了。

还是有一些方法可以做到这一点吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

您无需从数据库加载引用。

如果您有ID,session.Load<TheEntity>(theId)将返回所请求实体和Id的代理,而无需转到数据库。