0

EntityFrameworkとCodeFirstを使用してレガシーデータベースにマッピングしています(データベースが既に構築されている場合は、「データベースファースト」アプローチを使用する必要があることはわかっていますが、どういうわけか、制御を処理するよりも手作業で注釈を付ける方が適切です。ここでは、外部キーのように機能するが、実際にはテーブルスキーマで定義されていない、別のテーブルを指すキー(実際には別のデータベースのテーブルの同義語)を持つテーブルがあります。

問題は、この関係をPOCOクラスに強制的に存在させることができるかということです。Fluent APIを使用してこれをマッピングできますか?これは可能ですか?

いつものように、よろしくお願いします!

4

1 に答える 1

0

確かに、流暢なマッピングまたはデータ注釈のいずれかを使用して、外部キーとナビゲーション プロパティを手動で定義できます。

2 番目のデータベース内のテーブルを指すParentフィールドCatCodeとシノニムを持つテーブルがあるとします。どちらも、対応するクラスとを 1 つのコンテキストに持っています。マッピング ( から派生) は (コンストラクター) のようになります。CategoryExCategoryDbSetEntityTypeConfiguration

public ParentMap()
{
    this.HasKey(t => t.Id);
    this.HasRequired(p => p.Category).WithMany().HasForeignKey(p => p.CatCode);
    ...
}

public CategoryMap()
{
    this.HasKey(t => t.CatCode);
    this.ToTable("CategoryEx");
    ...
}

次のようになりParentます。

public class Parent
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string CatCode { get; set; }
    ...
    public Category Category { get; set; }
}
于 2012-11-16T20:24:44.143 に答える