0

我正在使用 EF 4.3 和 TPH。

我的基类是User,我也有一个Customer派生自User几个附加字段的类。

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

我希望应用程序的“常规”用户属于 type User,而 Customers 属于 type Customer。他们都以相同的方式登录,除了几个字段之外,他们的主要区别是权限,所以我用这种方式建模很方便。

Customer通过像这样设置我的上下文,我可以正常工作:

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

我的问题是,如果我想创建一个常规User实体,我如何告诉 EF 使用“U”作为鉴别器。

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

4

1 回答 1

1

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

mb.Entity<User>().Map(m => m.Requires("UserType").HasValue("U"));
于 2012-04-15T12:57:30.157 回答