假设我有一个请求表,如下所示:
RequestId INT
ReferenceNumber VARCHAR
每个请求都记录在requestlog表中。表之间没有外键:
RequestLogId INT
ReferenceNumber VARCHAR
Content VARCHAR
请求日志包含请求的内容,此内容需要存储一段时间。请求可以删除,但只能在一段时间后删除日志。
如何映射我的请求对象,以便它可以包含基于referencenumber的请求日志列表?
我试过了:
Table("InsuranceRequest");
Id(i => i.Id).Column("InsuranceRequestId");
Map(i => i.ReferenceNumber);
HasMany(i => i.InsuranceRequestLog).KeyColumn("RefenceNumber").LazyLoad.Cascade.None();
虽然不起作用。此映射尝试将referencenumber映射到请求日志的RequestLogId。有没有办法指定加入列应该是insurancerequestlog referencenumber?
答案 0 :(得分:-1)
没有什么能阻止你的表结构中的多对多.. 我建议更改结构并使它们成为外键,并且我确信如果在结构更改后映射不起作用,那么多对多映射将适用于你。
你的另一个提示: 获取一个空数据库并尝试公开模式.. 比你能看到nhibernate认为结构应该是什么样的