Inheritance EF 4.3使用现有基础的继承

Inheritance EF 4.3使用现有基础的继承,inheritance,entity-framework-4,Inheritance,Entity Framework 4,我有一个基本实体UserBase(UserId,Username)。我创建了一个子实体SecurityUser(密码)。我有另一个孩子实体PortalUser(姓名) 我为SecurityUser创建了一个新实体,并将其添加到上下文和savechanges中。该用户的UserId为1。我在UserBase和SecurityUser表中都添加了一行 如何为相同的基本用户实体(UserId=1)添加新的PortalUser?您不能。这就是继承的原则User可以是SecurityUser或Portal

我有一个基本实体UserBase(UserId,Username)。我创建了一个子实体SecurityUser(密码)。我有另一个孩子实体PortalUser(姓名)

我为SecurityUser创建了一个新实体,并将其添加到上下文和savechanges中。该用户的UserId为1。我在UserBase和SecurityUser表中都添加了一行


如何为相同的基本用户实体(UserId=1)添加新的PortalUser?

您不能。这就是继承的原则
User
可以是
SecurityUser
PortalUser
——两者都不能。如果您需要
User
同时作为安全用户和门户用户,则必须使用正常关系,如
User
Role

您的意思是唯一的解决方案是为用户使用导航属性吗?是的,在用户可以有多个角色或更改角色的情况下,这是正确的解决方案。@LadislavMrnka:可以解决这个问题吗基类
Task
和表示任务状态的派生类,如排队、部分完成、完成等。我从数据库的角度考虑,您可以使用分组表有效地管理状态。简言之,一个基类型永远不会是多个派生类型,而是需要从一个类型切换到另一个类型。Raheel:No EF不支持类型切换。