我正在使用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)之前的引用???
如果每次服务器收到更新时我必须获取所有引用(来自缓存或数据库),这对于实现更新来说实在是太过分了。
还是有一些方法可以做到这一点吗?
谢谢!
答案 0 :(得分:2)
您无需从数据库加载引用。
如果您有ID,session.Load<TheEntity>(theId)
将返回所请求实体和Id的代理,而无需转到数据库。