小编use*_*907的帖子

流畅的Nhibernate复合键映射

我试图在很长一段时间内弄清楚这个问题.我有一个hacky方式来使它工作.

我只想知道在Fluent NHibernate映射中是否可行.

假设我有两个表例如:

Table ComissionLevel
{
    Year,
    ComissionLevelID,

    ... other properties ....
}
primary key (Year,ComissionLevelID)

Table ClientCommission
{
    Year,
    ClientID,
    CommissionLevelID_1,
    CommissionLevelID_2,

    ... other properties ...
}
primary key (Year,ClientID)
foreign key CommissionLevel1 (Year,CommissionLevelID_1)
foreign key CommissionLevel2 (Year,CommissionLevelID_2)
Run Code Online (Sandbox Code Playgroud)

目前我的映射如下:

public ComissionLevelMap()
{
  Schema("XXXX");
  Table("ComissionLevel");
  LazyLoad();
  CompositeId()
    .KeyProperty(x => x.Year, set => {
        set.ColumnName("Year");
        set.Access.Property(); } )
    .KeyProperty(x => x.CommissionLevelID, set => {
        set.ColumnName("CommissionLevelID");
        set.Length(10);
        set.Access.Property(); } );

  HasMany<ClientCommission>(x => x.ClientCommissions)
    .Access.Property()
    .AsSet()
    .Cascade.AllDeleteOrphan()
    .LazyLoad()
    .Inverse()
    .Generic()
    .KeyColumns.Add("Year", mapping …
Run Code Online (Sandbox Code Playgroud)

nhibernate fluent-nhibernate fluent-nhibernate-mapping

4
推荐指数
1
解决办法
1万
查看次数