1

NHibernate3.2にアップグレードしています。Fluent NHibernateを使用していましたが、NH3.2の新しいビルドが表示されません。付属のConformマッパーの使用を検討していますが、複合IDを使用できないようです。データベースを変更できないため、制約があります。

Fluent NHibernateで私はこれを持っていました(名前は例えば変更されただけです):

        Schema("MY_SCHEMA");
        Table("MY_TABLE");
        CompositeId()
            .KeyProperty(x => x.CompanyId, "COMPANY_ID")
            .KeyProperty(x => x.OrderId, "ORDER_ID")
            .KeyProperty(x => x.OrderDate, "ORDER_DATE")
            .KeyProperty(x => x.ProgramId, "PROGRAM_ID");

NH 3.2のConformでこれを行うにはどうすればよいですか?

ありがとう、ポール

4

1 に答える 1

4

あなたはで試すことができます:

mapper.Class<YourEntity>(m=>{
m.Table("MY_TABLE");
m.Schema("MY_SCHEMA");
m.ComposedId(cid=>
{
  cid.Property((e)=>e.CompanyId);
  cid.Property((e)=>e.OrderId);
   cid.Property((e)=>e.OrderDate);
//others...
});
});

そして、私はあなたのデータベースを理解できないので、おそらくキーの単一の部分を多対1にマッピングするだろうと推測しています(つまり、hbmで書く古いキー対多) 、そうするために、 ;cid.ManyToOne()の代わりに使用してください。cid.Property(..)

于 2011-10-25T14:45:38.447 に答える