簡體   English   中英

兩個表oneToMany的FluentNhibernate映射在映射中使用唯一的主鍵instea

[英]FluentNhibernate mapping of two tables oneToMany using unique instea of primary key in mapping

我正在用C#編寫桌面項目。 我正在使用Nhibernate與數據庫進行通信。 此外,我使用FluentNhibernate進行模型映射,但我陷入了映射的某些部分。 這是ProductMap中的My mapping Class

松動地圖

   public LosingMap()
        {
            Id(x => x.id);
            Map(x => x.reason);
            Map(x => x.quantity);
            Map(x => x.lose_sum);
            Map(x => x.rate);
            Map(x => x.deleted);
            Map(x => x.create_date);
            Map(x => x.update_date);
            References(x => x.currency).Column("CurrencyCode");
            Table("Loosing");


        }
    }

這是CurrencyMap

CurrencyMap

public CurrencyMap()
    {

        Id(x => x.id);
        Map(x => x.code).UniqueKey("currency_code");


        Map(x => x.name);
        Map(x => x.shname);
        Map(x => x.symbol);
        Map(x => x.deleted);
        HasMany(x => x.Losings).Cascade.All();
        Table("currency");
    }
}

這里是我在我的貨幣表中有一個主鍵和一個唯一鍵我怎么能在我的LoosingMap類中引用我的唯一而不是主鍵???

使用KeyColumnCurrencyMap使用:

public CurrencyMap()
    {

        Map(x => x.id); // Optional
        KeyColumn(x => x.code)


        Map(x => x.name);
        Map(x => x.shname);
        Map(x => x.symbol);
        Map(x => x.deleted);
        HasMany(x => x.Losings).Cascade.All();
        Table("currency");
    }
}

根據FluentNHibernate“HasMany / one-to-many”文檔 ,“與引用一樣,外鍵默認為Author_id,您可以使用KeyColumn方法覆蓋它或使用約定更改默認行為。”,所以你也可以使用:

HasMany(x => x.Losings).KeyColumn(x => x. CurrencyCode).Cascade.All();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM