我正在开发 MVC 应用程序并使用剃刀语法。我使用了模型优先方法。
我有两个实体,客户和潜在客户。Lead 继承自 Customer。
当 IsActive 属性为 true 时,将 Customer 视为潜在客户,否则将是客户。
请检查 edmx 文件图像。
现在,在常规实体中,我们只处理单个实体和单个表。在这种情况下,我该如何处理、保存和加载过程。因为我必须从 2 个数据库表中存储和加载记录。常规索引视图可以在这里工作吗?
我正在开发 MVC 应用程序并使用剃刀语法。我使用了模型优先方法。
我有两个实体,客户和潜在客户。Lead 继承自 Customer。
当 IsActive 属性为 true 时,将 Customer 视为潜在客户,否则将是客户。
请检查 edmx 文件图像。
现在,在常规实体中,我们只处理单个实体和单个表。在这种情况下,我该如何处理、保存和加载过程。因为我必须从 2 个数据库表中存储和加载记录。常规索引视图可以在这里工作吗?
在实体框架中使用继承时,您将有一个单一DbSet
的DbContext
暴露层次结构。在您的数据库中,您有几个用于配置表结构的选项。例如,您可以使用:
(请参阅此博客以获得很好的解释:实体框架中的继承。
但是,在您的查询中,您不必考虑这一点。您的查询将具有以下结构:
var leads = from l in dbcontext.Leads.OfType<Customer>()
select l;
OfType()将您的集合过滤为层次结构中的子类型。如果您跳过,OfType
您将在结果查询中同时获得客户和潜在客户。