0

流れるような nhibernate 3.1 を使用してレガシー データベースにマップしています。2 つのクラスがあり、B を A に結合したいと考えています。データベース構造には外部キーがありません。

AModel.OccurrenceNumber と BModel.OccurrenceNumber は同じデータ (つまり、一方と他方で # 1234 を要求) を持ちますが、列名が異なるだけです。マッピング段階で参加することはできますか? 必要に応じて、それらに参加するための linq ステートメントを作成できますが、ここで実行できるかどうかを知りたいです。前もって感謝します。

public class AMap : ClassMap<AModel>
{
    public AMap()
    {
        Table("ATable");

        Id(x => x.Id).GeneratedBy.Increment();
        Map(x => x.OccurrenceNumber).Column("OCCUR"); //Same Data
    }
}

public class BMap : ClassMap<BModel>
{
    public BMap()
    {
        Table("BTable");

        Id(x => x.Id).GeneratedBy.Increment();
        Map(x => x.OccurrenceNumber).Column("B69_CLAIM_OCCUR"); // Same Data
    }
}
4

1 に答える 1

0

AMap または BMap クラスで次の参照を宣言できます

References<AModel>(x => x.AModels).Column("B69_CLAIM_OCCUR").PropertyRef("OccurrenceNumber").ReadOnly();

BModel クラスで AModeldata データが次のように定義されている場合

public virtual IList<AModel> AModels{ get; set; }

したがって、これら 2 つのテーブルを結合するクエリを作成すると、 と で自動的に結合されB69_CLAIM_OCCURますOCCUR

ここでは、A エンティティと B エンティティの間に 1 対多の関係があると想定しています。

于 2013-08-29T17:12:32.353 に答える