我正在學習使用流利的nhibernate,並且無法理解如何創建映射。我有一個具有多列主鍵的表,但我無法正確映射它。我有以下流利的映射 -nhibernate流利的映射覆合ID
public class MyEntityMappingOverride : IAutoMappingOverride<MyEntity>
{
public void Override(AutoMapping<MyEntity> mapping)
{
mapping.CompositeId()
.KeyProperty(x => x.Id_1, "Id_1")
.KeyProperty(x => x.Id_2, "Id_2");
mapping.References(x => x.otherEntity)
.Column("JoinColumn");
// Commented out to attempt to map to another entity on multiple columns
//mapping.HasMany(x => x.thirdEntit)
// .KeyColumns.Add("thirdId_1", "thirdId_2")
// .Cascade.All();
}
}
我遇到的問題是複合ID似乎並沒有工作。
這是從生產的映射文件的一個片段 -
<id name="Id" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<column name="Id" />
<generator class="identity" />
</id>
我再拿到該列(ID),在查詢任何表中不存在錯誤。
我錯了,認爲我的映射代碼會產生正確的複合ID?我錯過了什麼或者做錯了什麼嗎?
也許NHibernate自動映射約定重寫你的流暢映射? – rebelliard 2011-05-19 13:23:38
也許就是這個問題 - 我將不得不考慮這個問題。注 - 我已經改編了SharpArchitecture中的一些作品來映射我的域名。我只是看着,可能會發生一些事情。我會看看。 – czuroski 2011-05-19 13:38:50
夏普?這絕對是。我有同樣的問題,我不得不修改主鍵約定,所以它忽略了我的具體類型。 – rebelliard 2011-05-19 14:02:49