Jah*_*rov 8 c# nhibernate nhibernate-mapping fluent-nhibernate
我正在用C#编写桌面项目.我正在使用Nhibernate与数据库进行通信.此外,我使用FluentNhibernate进行模型映射,但我陷入了映射的某些部分.这是ProductMap中的My mapping Class
松动地图
public LosingMap()
{
Id(x => x.id);
Map(x => x.reason);
Map(x => x.quantity);
Map(x => x.lose_sum);
Map(x => x.rate);
Map(x => x.deleted);
Map(x => x.create_date);
Map(x => x.update_date);
References(x => x.currency).Column("CurrencyCode");
Table("Loosing");
}
}
Run Code Online (Sandbox Code Playgroud)
这是CurrencyMap
CurrencyMap
public CurrencyMap()
{
Id(x => x.id);
Map(x => x.code).UniqueKey("currency_code");
Map(x => x.name);
Map(x => x.shname);
Map(x => x.symbol);
Map(x => x.deleted);
HasMany(x => x.Losings).Cascade.All();
Table("currency");
}
}
Run Code Online (Sandbox Code Playgroud)
这里是我在我的货币表中有一个主键和一个唯一键我怎么能在我的LoosingMap类中引用我的唯一而不是主键???
使用KeyColumn就CurrencyMap使用:
public CurrencyMap()
{
Map(x => x.id); // Optional
KeyColumn(x => x.code)
Map(x => x.name);
Map(x => x.shname);
Map(x => x.symbol);
Map(x => x.deleted);
HasMany(x => x.Losings).Cascade.All();
Table("currency");
}
}
Run Code Online (Sandbox Code Playgroud)
根据FluentNHibernate“HasMany / 一对多”文档,“与引用一样,外键默认为 Author_id,您可以使用 KeyColumn 方法覆盖它或使用约定更改默认行为。”,因此您还可以使用:
HasMany(x => x.Losings).KeyColumn(x => x. CurrencyCode).Cascade.All();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
109 次 |
| 最近记录: |