c# – 两个表oneToMany的FluentNhibernate映射在映射中使用唯一的主键instea
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 两个表oneToMany的FluentNhibernate映射在映射中使用唯一的主键instea,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1235字,纯文字阅读大概需要2分钟。
内容图文
![c# – 两个表oneToMany的FluentNhibernate映射在映射中使用唯一的主键instea](/upload/InfoBanner/zyjiaocheng/822/3c1ca16bd15a40de80cf2e5e60aa58cc.jpg)
我正在用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");
}
}
这是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");
}
}
这里是我在我的货币表中有一个主键和一个唯一键我怎么能在我的LoosingMap类中引用我的唯一而不是主键???
解决方法:
使用CurrencyMap上的KeyColumn:
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");
}
}
根据FluentNHibernate “HasMany / one-to-many” documentation,“与引用一样,外键默认为Author_id,您可以使用KeyColumn方法覆盖它或使用约定更改默认行为.”,因此您还可以使用:
HasMany(x => x.Losings).KeyColumn(x => x. CurrencyCode).Cascade.All();
内容总结
以上是互联网集市为您收集整理的c# – 两个表oneToMany的FluentNhibernate映射在映射中使用唯一的主键instea全部内容,希望文章能够帮你解决c# – 两个表oneToMany的FluentNhibernate映射在映射中使用唯一的主键instea所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。