0

我正在开发 MVC 应用程序并使用剃刀语法。我使用了模型优先方法。

我有两个实体,客户和潜在客户。Lead 继承自 Customer。

当 IsActive 属性为 true 时,将 Customer 视为潜在客户,否则将是客户。

请检查 edmx 文件图像。

在此处输入图像描述

现在,在常规实体中,我们只处理单个实体和单个表。在这种情况下,我该如何处理、保存和加载过程。因为我必须从 2 个数据库表中存储和加载记录。常规索引视图可以在这里工作吗?

4

1 回答 1

0

在实体框架中使用继承时,您将有一个单一DbSetDbContext暴露层次结构。在您的数据库中,您有几个用于配置表结构的选项。例如,您可以使用:

  • 每个层次结构的表
  • 每个类型的表
  • 每个混凝土类型的表

(请参阅此博客以获得很好的解释:实体框架中的继承

但是,在您的查询中,您不必考虑这一点。您的查询将具有以下结构:

var leads = from l in dbcontext.Leads.OfType<Customer>()
            select l;

OfType()将您的集合过滤为层次结构中的子类型。如果您跳过,OfType您将在结果查询中同时获得客户和潜在客户。

于 2012-09-28T07:30:40.493 回答