2012-11-13 32 views
1

我正在使用新應用程序中的代碼映射,並看到常規模型映射器的一些奇怪行爲。它選擇我所有的1..N關係中的一個作爲一個Bag,一個作爲一個Set。據我所知,他們都是基本上以相同的方式宣佈。如果我沒有爲BeforeMapSet設置一個事件處理程序,那麼適當的BeforeMapManyToOne處理程序永遠不會被觸發。ConventionModelMapper如何確定集合/包關係

回答

1

XML映射在這種方式更加明確,通常映射的IList <><bag>ISet<set>。有一種解釋,流利引擎(1.2版本)如何試圖做同樣的:

https://github.com/jagregory/fluent-nhibernate/wiki/Fluent-mapping

(見的hasMany /一個一對多/收集類型)

的從上面的鏈接提取:

public IList<Child> Children { get; set; }  
HasMany(x => x.Children); // <bag /> 


private ISet<Child> _children;  
public IEnumerable<Child> Children 
{ 
    get { return _children; } 
} 

HasMany(x => x.Children); // <set access="nosetter.camelcase-underscore" /> 


private ISet<Child> _children;  
public IEnumerable<Child> GetChildren() 
{ 
    return _children; 
} 

HasMany(x => x.GetChildren()); // <set name="_children" access="field" /> 

所以我猜,你的「小differencies」中映射可以有

隱藏