Я хотел бы создать новую сопоставленную сущность, которая выглядит следующим образом:
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 есть HOWTO по сопоставлению сущностей с двумя таблицами ( здесь и здесь ), но они, похоже, полагаются на нормальные внешниеkey.
Есть ли способ сопоставить Paths.ItemId
с Items.Id
и затем жестко закодировать значение для Paths.ItemType
в соединении?