我正在开发MVC应用程序并使用剃刀语法。我使用了模型第一种方法。
我有两个实体,即客户和主管。 Lead继承自客户。
当IsActive属性为true时,Customer将被视为Lead,否则它将成为客户。
请检查edmx文件图片。
现在,在常规实体中,我们只处理单个实体和单个表。 在这种情况下,我该如何处理,保存和加载过程。因为我必须存储和加载来自2个DB表的记录。 常规索引视图是否适用于此处?
答案 0 :(得分:0)
在实体框架中使用继承时,DbSet
上会有一个DbContext
公开您的层次结构。在您的数据库中,您有几个配置表结构的选项。例如,您可以使用:
(请参阅此博客以获得一个很好的解释:Inheritance in the Entity Framework。
然而,在您的查询中,您不必考虑这一点。您的查询将具有以下结构:
var leads = from l in dbcontext.Leads.OfType<Customer>()
select l;
OfType()将您的集合过滤为层次结构中的子类型。如果您跳过OfType
,您将在生成的查询中获得客户和潜在客户。