Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 使用每个层次的表可以设置基类的鉴别器吗?_Entity Framework_Entity Framework 4_Entity Framework 4.1 - Fatal编程技术网

Entity framework 使用每个层次的表可以设置基类的鉴别器吗?

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

我正在使用EF4.3和TPH

我的基类是
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,并且至少有一个调用没有指定目标表名。”