0

我試圖自動映射類代碼。代碼可以有(子)代碼。FluentNhibernate自動映射樹(遞歸關聯)

public class Code 
{ 
    public virtual string Key{get;set;} 
    public virtual Code Parent{get; set;} 
    public virtual ICollection<Code> SubCodes{get;set;} 
    private ICollection<Code> subCodes = new Collection<Code>(); 
} 

這個工程,但我得到列IdParent和我的表中IdCode列。 命名父項屬性IdCode沒有幫助,然後我得到一個IdIdCode列和IdCode

我需要做些什麼來解決這個問題。

我用自動映射一個配置對象

回答

1

好像你自動映射使用了添加前綴ID來引用,以及對ID的約定。

如果需要,您可以通過在AutoMap配置中使用自己的自定義ForeignKeyConvention來覆蓋此約定。

否則,只需命名您的數據庫表的列相應。

+0

父項的列名不是問題。重點是它被添加了兩次:一次用於外鍵,一次用於映射屬性。 我想將生成的IdCode列作爲屬性公開給Code類,或者如果無法通過映射將父字段用作外鍵列。 現在,我的桌子上有兩列,我的班級有一個屬性,或者我的班級有一列,我的班級沒有任何屬性。 順便說一句,你是快速變體,謝謝 –

+0

你有'Id'映射約定?我仍然不清楚你的問題是什麼。你可以發佈自動映射生成的hbm映射嗎? |您可以通過在Automapping配置中使用'ExportTo'來獲取它們。 – Variant

+0

你得到的IdCode列可能是自動生成的'Id'映射。什麼是你想要爲你的實體使用的主鍵? – Variant