Entity Framework - 视图

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

  • 过滤基础表的数据

  • 过滤数据出于安全目的

  • 集中分布在多个服务器上的数据

  • 创建可重复使用的数据集

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

让我们来看看如何将视图添加到模型中来自数据库的模型.

第1步 : 创建一个新的控制台应用程序项目.

Application Project

第2步 : 右键单击解决方案资源管理器中的项目,然后选择添加→新项.

Project Solution Explorer

第3步 : 从中间窗格中选择ADO.NET实体数据模型,然后在名称字段中输入名称ViewModel.

步骤4 : 单击"添加"按钮,将启动"实体数据模型向导"对话框.

添加按钮

第5步 : 从数据库中选择EF Designer,然后单击Next按钮.

实体模型向导

第6步 : 选择现有数据库,然后单击Next.

现有数据库

第7步 : 选择Entity Framework 6.x并单击Next.

Entity Framework Next

第8步 : 从数据库中选择表和视图,然后单击Finish.

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...

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