3
我與當前情況下試圖創建一個使用舊的數據庫模式的映射掙扎的hasMany關係:FluentNhibernate - 複合鍵
我有一對是由複合鍵聯父/子類,我使用FluentNHibernate來創建它們之間的映射和關聯。下面是類:
/*Parent Class*/
public class Comprobante : Model<Comprobante>
{
public virtual IList<CuotaComprobante> Cuotas { get; protected set; }
public virtual string NumeroComprobante { get; protected set; }
public virtual string Tipo { get; protected set; }
public Comprobante(){ }
}
/*Child Class*/
public class CuotaComprobante : Model<CuotaComprobante>
{
public virtual Comprobante Comprobante { get; protected set; }
public virtual string Estado { get; protected set; }
public virtual DateTime FechaVencimiento { get; protected set; }
/*!!!Want to get rid of this two properties in the child class*/
public virtual string NumeroComprobante { get; protected set; }
public virtual string Tipo { get; protected set; }
public CuotaComprobante(){ }
}
,這裏是數據庫模式:
Comprobante Table (gva12)
- ID_GVA12
- N_COMP (NumeroComprobante property in Comprobante class)
- T_COMP (Tipo property in Comprobante class)
CuotaComprobante Table (gva46)
- ID_GVA46
- N_COMP
- T_COMP
所以,你可以看到,N_COMP和T_COMP字段是複合鍵的一部分(包括ID_GVA12和ID_GVA46不用於數據庫中的關係)。我已經嘗試過使用HasMany關係(如下面的代碼所示),但它只使用T_COMP字段執行連接,這給我的結果比預期的要多。正如你可能已經注意到的,我只是在子類中創建了屬性「NumeroComprobante」和「Tipo」以用於映射目的,但是我真的想擺脫它們,因爲它是父類中已有的信息,或者替換它們參考Comprobante類。
HasMany(x => x.Cuotas)
.KeyColumn("N_COMP").PropertyRef("NumeroComprobante")
.KeyColumn("T_COMP").PropertyRef("Tipo")
.Inverse();
所以我的問題是:有沒有什麼辦法來實現這一點?我真的沒有想法,因爲我有點像映射和搜索的新手沒有提供任何幫助。
在此先感謝!
毛
請爲'Comprobante'和'CuotaComprobante'類提供完整的映射。 – SHSE