使用每个层次结构表可以设置基类的鉴别符吗?

时间:2012-04-15 10:01:31

标签: entity-framework entity-framework-4 entity-framework-4.1

我使用的是EF 4.3和TPH。

我的基类是User,我还有一个类Customer,它来自User,还有一些额外的字段。

在我的数据库中,我有一个名为UserType的列,我将其用作鉴别器。我希望客户=' C'和用户=' U'

我想"常规"应用的用户属于User类型,客户属于Customer类型。它们都以相同的方式登录,除了几个字段之外,它们的主要区别在于权限,因此方便我以这种方式对其进行建模。

我可以通过设置我的上下文来使Customer正常工作:

mb.Entity<User>().Map<Customer>(m=>m.Requires("UserType").HasValue("C"));

我的问题是,如果我想创建一个常规User实体,我怎么能告诉EF使用&#34; U&#34;作为鉴别者。

我试图避免从User派生另一个类,因为User已经满足了我的需求。但也许这是不可能的。

1 个答案:

答案 0 :(得分:1)

您可以为基本类型设置鉴别器值:

mb.Entity<User>().Map(m => m.Requires("UserType").HasValue("U"));