我在数据库表/ NHibernate实体中有一个复合键。我可以以某种方式使用.Get
方法来获取特定实体,还是因为复合键而必须使用HQL / Criteria?
答案 0 :(得分:25)
使用此复合键映射:
<class name="MyClass">
<composite-id>
<key-property name="Key1" />
<key-property name="Key2" />
</composite-id>
<property name="..." />
</class>
...你可以使用。获取这样:
var x = Session.Get<MyClass>(new MyClass() { Key1 = 'Foo', Key2 = 'Bar'});
答案 1 :(得分:3)
如果您使用了此处建议的密钥类,则只能使用Session.Get():nHibernate Composite Key Class Type Mismatch