使用NHibernate ISession.Get<>()和/或复合键

时间:2010-02-16 17:40:44

标签: c# .net nhibernate composite-key

我在数据库表/ NHibernate实体中有一个复合键。我可以以某种方式使用.Get方法来获取特定实体,还是因为复合键而必须使用HQL / Criteria?

2 个答案:

答案 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