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、他のアイテムとは異なるテーブルにあり、それらのテーブルの 1 つにポリモーフィック外部キーがあることです。ここに私のテーブルがあります:

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 には、エンティティを 2 つのテーブルにマッピングする方法に関する HOWTO があります ( hereおよびhere ) が、通常の外部キーに依存しているようです。

結合の値をマップPaths.ItemIdItems.Idてからハードコーディングする方法はありますか?Paths.ItemType

4

1 に答える 1

3

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

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

于 2011-01-31T20:32:37.170 に答える