如何从MVC中的2个实体获取数据?

时间:2012-09-28 07:23:37

标签: asp.net-mvc

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

我有两个实体,即客户和主管。 Lead继承自客户。

当IsActive属性为true时,Customer将被视为Lead,否则它将成为客户。

请检查edmx文件图片。

enter image description here

现在,在常规实体中,我们只处理单个实体和单个表。 在这种情况下,我该如何处理,保存和加载过程。因为我必须存储和加载来自2个DB表的记录。 常规索引视图是否适用于此处?

1 个答案:

答案 0 :(得分:0)

在实体框架中使用继承时,DbSet上会有一个DbContext公开您的层次结构。在您的数据库中,您有几个配置表结构的选项。例如,您可以使用:

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

(请参阅此博客以获得一个很好的解释:Inheritance in the Entity Framework

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

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

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