ASP.NET MVC - 数据库

ASP.NET MVC - 数据库 首页 / ASP.Net MVC入门教程 / ASP.NET MVC - 数据库

在本教程中创建的所有ASP.NET MVC应用程序中,我们一直在将硬编码数据从Controllers传递到View模板,但是,为了构建真实的Web应用程序,您可能需要使用真实的数据库,在本章中,我们将看到如何使用数据库引擎来存储和检索应用程序所需的数据。

为了存储和检索数据,我们将使用称为Entity Framework的.NET Framework数据访问技术来定义和使用模型。

让我们看一个简单的示例,在该示例中,我们将在示例中添加对Entity框架的支持。

第1步-要安装实体框架,请右键单击您的项目,然后选择 NuGet Package Manager→Manage NuGet Packages for Solution…

Install Entity Framework

它将打开 NuGet Package Manager,在搜索框中搜索实体框架。

Search Entity Framework

选择实体框架,然后单击"Install"按钮,它将打开"Preview"对话框。

Select Entity Framework

单击确定继续。

License Acceptance

点击"I Accept"按钮开始安装。

I Accept Button

一旦安装了Entity Framework,您将在窗口外看到消息,如上面的屏幕截图所示。

添加DBContext

我们需要向员工模型添加另一个类,该类将与Entity Framework通信,以使用以下代码检索和保存数据。

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;

using System.Web;

namespace MVCSimpleApp.Models{
   public class Employee{
      public int ID { get; set; }
      public string Name { get; set; }
      public DateTime JoiningDate { get; set; }
      public int Age { get; set; }
   }
	
   public class EmpDBContext : DbContext{
      public EmpDBContext()
      { }
      public DbSet<Employee> Employees { get; set; }
   }
}

如上所述, EmpDBContext 是从称为 DbContext 的EF类派生的,在此类中,我们有一个名称为DbSet的属性,该属性基本上表示您要查询和保存的实体。

连接配置

我们需要在Web.config文件中的数据库的<configuration>标签下指定连接字符串。

<connectionStrings>
   <add name = "EmpDBContext" connectionString = "Data
   Source=(LocalDb)\v14.0;AttachDbFilename=|DataDirectory|\EmpDB.mdf;Initial
   Catalog=EmployeeDB;Integrated Security=SSPI;"
   providerName = "System.Data.SqlClient"/>
</connectionStrings>

您实际上不需要添加EmpDBContext连接字符串,如果您不指定连接字符串,则Entity Framework将使用DbContext类的完全限定名称在用户目录中创建localDB数据库,对于此演示,我们不会添加连接字符串以使事情变得简单。

现在,我们需要更新EmployeeController.cs文件,以便实际上可以从数据库保存和检索数据,而不是使用硬编码数据。

首先,我们添加一个私有的EmpDBContext类对象,然后更新Index,Create和Edit操作方法,如下面的代码所示。

using MVCSimpleApp.Models;
using System.Linq;
using System.Web.Mvc;

namespace MVCSimpleApp.Controllers {
   public class EmployeeController : Controller{
      private EmpDBContext db = new EmpDBContext();
      //GET: Employee
		
      public ActionResult Index(){
         var employees = from e in db.Employees
         orderby e.ID
         select e;
         return View(employees);
      }
		
      //GET: Employee/Create
      public ActionResult Create(){
         return View();
      }
		
      //POST: Employee/Create
      [HttpPost]
      public ActionResult Create(Employee emp){
         try{
            db.Employees.Add(emp);
            db.SaveChanges();
            return RedirectToAction("Index");
         }catch{
            return View();
         }
      }
		
      //GET: Employee/Edit/5
      public ActionResult Edit(int id){
         var employee = db.Employees.Single(m => m.ID == id);
         return View(employee);
      }
		
      //POST: Employee/Edit/5
      [HttpPost]
      public ActionResult Edit(int id, FormCollection collection){
         try{
            var employee = db.Employees.Single(m => m.ID == id);
            if (TryUpdateModel(employee)){
               //To Do:- database code
               db.SaveChanges();
               return RedirectToAction("Index");
            }
            return View(employee);
         }catch{
            return View();
         }
      }
   }
}

然后,我们使用以下URL http://localhost:63004/Employee 运行此应用程序。您将看到以下输出。

Name JoiningDate Age

如您所见,视图上没有数据,这是因为我们没有在数据库中添加任何记录,该记录是由Visual Studio创建的。

无涯教程网

让我们转到SQL Server Object Explorer,您将看到数据库的创建与我们在DBContext类中使用的名称相同。

DBContext Class

让我们扩展该数据库,您将看到它有一个表,其中包含我们在Employee模型类中拥有的所有字段。

Employee Model Class

要查看此表中的数据,请右键单击"Employees"表,然后选择"View Data"。

Employee Table View Data

您会看到我们目前没有记录。

No Records Moment

让我们直接在数据库中添加一些记录,如以下屏幕截图所示。

Add Records in Database

刷新浏览器,您将看到数据现在已从数据库更新到视图。

Updated View

通过点击"Create New"链接,从浏览器中添加一条记录,它将显示创建视图。

Create View

让我们在以下字段中添加一些数据。

Add Some Data

单击创建按钮,它将更新索引视图以及将此新记录添加到数据库。

链接:https://www.learnfk.comhttps://www.learnfk.com/asp.net_mvc/asp.net-mvc-databases.html

来源:LearnFk无涯教程网

New Record Database

现在,我们去SQL Server对象资源管理器并刷新数据库,右键单击雇员表,然后选择查看数据菜单选项,您将看到该记录已添加到数据库中。

Record Added in Database

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

Python核心技术与实战 -〔景霄〕

网络编程实战 -〔盛延敏〕

即时消息技术剖析与实战 -〔袁武林〕

后端技术面试 38 讲 -〔李智慧〕

摄影入门课 -〔小麥〕

A/B测试从0到1 -〔张博伟〕

Python自动化办公实战课 -〔尹会生〕

快手 · 音视频技术入门课 -〔刘歧〕

云计算的必修小课 -〔吕蕴偲〕

好记忆不如烂笔头。留下您的足迹吧 :)