我的目標是使用NHibernate架構生成和Fluent NHibernate的automapper來生成我的數據庫。我遇到了我稱之爲「單向多對多關係」的問題。流利的NHibernate自動映射:一對多的實體,多對多的後端?
我的許多實體都有本地化資源。一個單獨的類可能是這樣的:
public class Something {
public virtual int Id {get; private set;}
public virtual Resource Title {get;set;}
public virtual Resource Description {get;set;}
public virtual IList<Resource> Bullets {get;set;}
}
的Resource
類沒有任何引用回;這些都是完全單向的。
public class Resource {
public virtual int Id {get; private set;}
public virtual IList<LocalizedResource> LocalizedResources {get;set;}
// etc.
}
public class LocalizedResource { //
public virtual int Id {get; private set; }
public virtual string CultureCode {get;set;}
public virtual string Value {get;set;}
public virtual Resource Resource {get;set;}
}
沒有IList<Resource>
,一切都發生,我會想 - 資源ID是在Title
和Description
領域。但是,當我添加IList
時,NHibernate將字段something_id
添加到Resource
表中。我明白爲什麼會這樣做,但在這種情況下,這不是一種可持續的方法。
我想要的是爲子彈創建聯結表。喜歡的東西:
CREATE TABLE SomethingBullet (
Id int NOT NULL PRIMARY KEY IDENTITY(1,1),
Something_Id int NOT NULL,
Resource_Id int NOT NULL
)
這樣,當我添加了其他26多實體爲我不會跟一個可笑的寬而疏Resource
表來結束該數據庫。
如何指示Automapper以這種方式對待所有IList<Resource>
屬性?
+1 - 檢查鏈接的博客以瞭解如何做映射既FNH和代碼的新NH映射了很好的指導。 – 2012-02-13 17:24:24