Entity framework 使用每个层次的表可以设置基类的鉴别器吗?
我正在使用EF4.3和TPH 我的基类是Entity framework 使用每个层次的表可以设置基类的鉴别器吗?,entity-framework,entity-framework-4,entity-framework-4.1,Entity Framework,Entity Framework 4,Entity Framework 4.1,我正在使用EF4.3和TPH 我的基类是User,我还有一个类Customer,它派生自User,带有一些附加字段 在我的数据库中有一个名为UserType的列,我使用它作为鉴别器。我希望Customer to='C'和User to='U' 我希望应用程序的“普通”用户为User类型,客户为Customer类型。他们都以相同的方式登录,除了几个字段之外,他们的主要区别是权限,所以我可以用这种方式对其进行建模 通过如下设置上下文,我可以让Customer正常工作: mb.Entity<Us
User
,我还有一个类Customer
,它派生自User
,带有一些附加字段
在我的数据库中有一个名为UserType
的列,我使用它作为鉴别器。我希望Customer to='C'和User to='U'
我希望应用程序的“普通”用户为User
类型,客户为Customer
类型。他们都以相同的方式登录,除了几个字段之外,他们的主要区别是权限,所以我可以用这种方式对其进行建模
通过如下设置上下文,我可以让Customer
正常工作:
mb.Entity<User>().Map<Customer>(m=>m.Requires("UserType").HasValue("C"));
mb.Entity().Map(m=>m.Requires(“UserType”).HasValue(“C”);
我的问题是,如果我想创建一个常规的用户
实体,我如何告诉EF使用“U”作为鉴别器
我试图避免从User派生另一个类,因为User已经满足了我的需要。但这可能是不可能的。您可以为基本类型设置鉴别器值:
mb.Entity<User>().Map(m => m.Requires("UserType").HasValue("U"));
mb.Entity().Map(m=>m.Requires(“UserType”).HasValue(“U”);
当我尝试时,我得到的错误是“对“User”类型多次调用Map,并且至少有一个调用没有指定目标表名。”