我想创建一个新的映射实体,如下所示:
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实体映射到两个表(here和here),但它们似乎依赖于正常的外键。
是否有某种方法可以将Paths.ItemId
映射到Items.Id
,然后在联接中对Paths.ItemType
的值进行硬编码?
答案 0 :(得分:3)
执行此操作的一种方法是创建一个视图,其中包含您需要的列以及ItemType上的过滤器。
然后将该视图添加到您的实体模型。