2

私はこのようになります新しい、マッピングされたエンティティを作成したいと思います:EFエンティティを多相外部キーを持つ2つのテーブルにマップできますか?

public class PathedItem 
{ 
    public long Id { get; set; }  // from the Items table 
    public string Name { get; set; } // from the Items table 
    public string Path { get; set; } // from the Paths table 
} 

問題はPathが他の項目とは別のテーブルにあり、それらのテーブルの一つが多型の外部キーを持っているということです。ここに私のテーブルです:

CREATE TABLE Items (
    [Id] [bigint] IDENTITY(1,1) NOT NULL, 
    [Name] [nvarchar](255) NOT NULL) 

CREATE TABLE Paths (
    [Id] [bigint] IDENTITY(1,1) NOT NULL, 
    [Path] [nvarchar](255) NOT NULL, 
    [ItemId] [bigint] NOT NULL, 
    [ItemType] [int] NOT NULL) 

Microsoftは二つのテーブル(herehere)にマッピングするエンティティ上のHOWTOを持っていますが、彼らは通常の外部キーに依存しているように見えます。

Paths.ItemIdItems.Idにマップする方法はありますか?次に、結合で​​の値をハードコードしますか?

答えて

3

これを行う1つの方法は、必要な列とItemTypeのフィルタを使用してビューを作成することです。

次に、そのビューをエンティティモデルに追加します。

+0

これはかなり良いアイデアです、ありがとう! – ladenedge

関連する問題