我正在尝试使用Entity Framework 5和Database first方法在其中一个具体类型上实现TPH递归关系。 我有这样的概念模型和表结构:
另外,我在数据库表中有这样的递归关系。
ALTER TABLE [dbo].[BaseType]
WITH CHECK ADD CONSTRAINT [FK_BaseType_DerivedType]
FOREIGN KEY([Derived1RecursiveId])
REFERENCES [dbo].[BaseType] ([Id])
当我使用这种关系更新模型时,我会得到如下图:
我的问题是:
如何在数据库中实现递归关系,以便在从数据库更新模型(刷新)时,在DerivedType1上设置递归关系?
答案 0 :(得分:1)
EF模型无法自动推断Derived1RecourseiveId是Derived1类的一部分。但您可以手动移动edmx文件中的关联。只需移动外键列,删除基表上的关联,然后在派生表上重新创建。移动后,即使您进行模型刷新,它也会保留在派生类型中。