我应该使用Get还是Load - nhibernate?

时间:2011-12-16 17:20:54

标签: nhibernate

我想知道在这种情况下我应该使用哪一个。我有一个下拉列表,将值发送回服务器。服务器当前使用load并生成对象。然后它会抓取一个值并尝试将其转换为枚举。

在做了一些阅读之后,似乎我应该只使用Get,因为我需要从PK以外的对象中访问某些内容。

2 个答案:

答案 0 :(得分:1)

一般情况下,如果您需要访问Id本身以外的属性,请使用Get;这使得代码的意图更加清晰,从长远来看可能更有效。 Load非常棒,如果您需要在创建或更新实体时设置FK关系,而不会对数据库进行不必要的往返。

如需进一步阅读,请查看更详细描述的Ayende's article

答案 1 :(得分:0)

如果启用了延迟加载,则

GetLoad会有所不同。 如果使用方法Load,NHibernate不会从数据库中检索实体,而是创建代理对象,唯一填充的属性是ID。 如果您访问其他属性,NHibernate将从数据库加载实体。

因此,在您的情况下,最好的用途应该是Get。