如果有任何区别,我将如何使用由 fluent nhibernate 配置的 nHibernate在某些情况下使用自然/备用键加载实体,而不是在Load
ISession 上使用该方法时使用主键。
我仍然需要允许我同时执行这两种操作的功能,并且在大多数情况下,实体将通过 PKey 加载,但在某些情况下(涉及外部系统),我需要使用自然选择记录钥匙。
我想保持性能优势Load
,而不是进行查询等。
// Current
int countryID = 1; // from normal input source
Address a = new Address();
a.Country = session.Load<Country>(countryID);
session.SaveOrUpdate(a);
// Required
string countryCode = "usa"; // from external input source
Address a2 = new Address();
a2.Country = session.LoadViaNatualKeySomehow<Country>(c=> c.Code, countryCode); // :)
session.SaveOrUpdate(a2);