实体框架 - 视图



视图是一个包含通过预定义查询获得的数据的对象。视图是一个虚拟对象或表,其结果集源自查询。它与真实表非常相似,因为它包含数据列和行。以下是视图的一些典型用途:

  • 过滤基础表的數據
  • 出于安全目的过滤数据
  • 集中分布在多个服务器上的数据
  • 创建可重用的数据集

视图的使用方式与表类似。要将视图用作实体,首先需要将数据库视图添加到 EDM。将视图添加到模型后,就可以像使用普通实体一样使用它,但创建、更新和删除操作除外。

让我们看看如何从数据库中将视图添加到模型。

步骤 1 - 创建一个新的控制台应用程序项目。

Application Project

步骤 2 - 在解决方案资源管理器中右键单击项目,然后选择“添加”→“新建项”。

Project Solution Explorer

步骤 3 - 从中间窗格中选择 ADO.NET 实体数据模型,并在“名称”字段中输入名称 ViewModel。

步骤 4 - 单击“添加”按钮,将启动实体数据模型向导对话框。

Add Button

步骤 5 - 选择“从数据库中选择 EF 设计器”,然后单击“下一步”按钮。

Entity Model Wizard

步骤 6 - 选择现有数据库,然后单击“下一步”。

Existing Database

步骤 7 - 选择 Entity Framework 6.x,然后单击“下一步”。

Entity Framework Next

步骤 8 - 从数据库中选择表和视图,然后单击“完成”。

Table View

您可以在设计器窗口中看到已创建视图,并且可以将其作为实体在程序中使用。

在解决方案资源管理器中,您还可以看到从数据库生成的 MyView 类。

让我们来看一个从视图中检索所有数据的示例。代码如下:

class Program {

   static void Main(string[] args) {

      using (var db = new UniContextEntities()) {

         var query = from b in db.MyViews
            orderby b.FirstMidName select b;

         Console.WriteLine("All student in the database:");

         foreach (var item in query) {
            Console.WriteLine(item.FirstMidName + " " + item.LastName);
         }

         Console.WriteLine("Press any key to exit...");
         Console.ReadKey();
      }
   }
}

执行上述代码后,您将收到以下输出:

All student in the database:
Ali Khan
Arturo   finand
Bill Gates
Carson Alexander
Gytis Barzdukas
Laura Norman
Meredith Alonso
Nino Olivetto
Peggy Justice
Yan Li
Press any key to exit...

我们建议您逐步执行上述示例,以便更好地理解。

广告