MySQL 如何在ASP.NET MVC 4中使用EF5访问MySQL数据库

MySQL 如何在ASP.NET MVC 4中使用EF5访问MySQL数据库

MySQL是一款开源的关系型数据库管理系统,而ASP.NET MVC 4是一个Web应用程序开发框架。EF5是一个访问数据库的技术,可以简化与数据库的交互。这篇文章将介绍如何在ASP.NET MVC 4中使用EF5访问MySQL数据库。

阅读更多:MySQL 教程

安装MySQL数据库

首先,我们需要安装MySQL数据库。MySQL是一款免费开源的数据库软件,可以从官方网站上下载最新版本的MySQL

安装MySQL后,我们需要创建一个数据库。可以使用MySQL Workbench来创建和管理数据库。在这里,我们创建一个名为test的数据库。

test数据库中,我们创建一张名为person的表,表中包含idnameage三个字段,其中id是自增的。

创建ASP.Net MVC 4项目

在Visual Studio中,选择“新建项目”,选择“ASP.Net MVC 4 Web应用程序”。选择一个命名空间和项目名称,单击“确定”按钮来创建项目。

在创建项目时,可以选择使用Razor视图引擎。在这里,我们将使用Razor视图引擎。

安装MySQL连接器

接下来,我们需要安装MySQL连接器。MySQL Connector/NET是.NET应用程序访问MySQL数据库时必须的驱动程序。

可以通过NuGet包管理器安装MySQL Connector/NET。在Visual Studio中,打开“工具”菜单,选择“NuGet包管理器”,然后选择“管理解决方案的NuGet程序包”。

在搜索框中输入“MySQL Connector”,然后找到“MySQL Connector/NET 8.0.22”进行安装。

配置Web.config文件

我们已经安装MySQL数据库和MySQL Connector/NET,现在需要在Web.config文件中配置数据库连接字符串。找到并打开Web.config文件,添加以下代码:

<connectionStrings>
  <add name="MySQLContext" connectionString="server=localhost;user id=root;password=root;database=test" providerName="MySql.Data.MySqlClient" />
</connectionStrings>

在上述代码中,name表示连接字符串的名称,connectionString表示连接字符串,其中server=localhost表示数据库服务器所在位置,user id是数据库账号,password是数据库账号对应的密码,database是要进行数据库操作的库名,providerName表示使用的是MySQL连接器。

创建数据模型

在这一步中,我们需要创建一个用于访问数据库的数据模型。在Solution Explorer中,右键单击项目名称,选择“添加 -> 新建项”,选择“类”,命名为Person.cs,然后添加以下代码:

namespace MySQL_Demo.Models
{
    public class Person
    {
        public int id { get; set; }
        public string name { get; set; }
        public int age { get; set; }
    }
}

在上述代码中,我们定义了一个Person类,该类包含idnameage三个属性。这些属性将映射到我们之前创建的person表中的相应字段。

创建数据访问类

在这一步中,我们需要创建一个用于访问数据库的数据访问类。在Solution Explorer中,右键单击项目名称,选择“添加 -> 新建项”,选择“类”,命名为MySQLContext.cs,然后添加以下代码:

using System.Data.Entity;

namespace MySQL_Demo.Models
{
    public class MySQLContext : DbContext
    {
        public MySQLContext() : base("MySQLContext") { }

        public DbSet<Person> Persons { get; set; }
    }
}

在以上代码中,我们定义了一个继承了DbContextMySQLContext类。在构造函数中,我们将读取之前的Web.config文件中定义的连接字符串。然后,我们定义了一个名为Persons的属性,该属性是Person类的DbSet类型,表示该属性将映射到我们之前创建的person表中。

Controller

在这一步中,我们将创建一个控制器,用于管理我们的数据模型。

在Solution Explorer中,右键单击Controllers文件夹,选择“添加 -> 控制器”,选择“MVC5 Controller – Empty”,并将其命名为PersonController。单击“添加”按钮。

PersonController.cs文件中添加以下代码:

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

namespace MySQL_Demo.Controllers
{
    public class PersonController : Controller
    {
        MySQLContext db = new MySQLContext();

        // GET: Person
        public ActionResult Index()
        {
            var persons = db.Persons.ToList();

            return View(persons);
        }

        // GET: Person/Details/5
        public ActionResult Details(int id)
        {
            var person = db.Persons.FirstOrDefault(p => p.id == id);

            return View(person);
        }

        // GET: Person/Create
        public ActionResult Create()
        {
            return View();
        }


        // POST: Person/Create
        [HttpPost]
        public ActionResult Create(Person person)
        {
            try
            {
                db.Persons.Add(person);
                db.SaveChanges();

                return RedirectToAction("Index");
            }
            catch
            {
                return View(person);
            }
        }

        // GET: Person/Edit/5
        public ActionResult Edit(int id)
        {
            var person = db.Persons.FirstOrDefault(p => p.id == id);

            return View(person);
        }

        // POST: Person/Edit/5
        [HttpPost]
        public ActionResult Edit(Person person)
        {
            try
            {
                db.Entry(person).State = System.Data.Entity.EntityState.Modified;
                db.SaveChanges();

                return RedirectToAction("Index");
            }
            catch
            {
                return View(person);
            }
        }

        // GET: Person/Delete/5
        public ActionResult Delete(int id)
        {
            var person = db.Persons.FirstOrDefault(p => p.id == id);

            return View(person);
        }

        // POST: Person/Delete/5
        [HttpPost]
        public ActionResult Delete(Person person)
        {
            try
            {
                db.Entry(person).State = System.Data.Entity.EntityState.Deleted;
                db.SaveChanges();

                return RedirectToAction("Index");
            }
            catch
            {
                return View(person);
            }
        }
    }
}

在上述代码中,我们引用了MySQL_Demo.Models下的MySQLContextPerson类。在控制器类中,Index方法用于获取数据库中所有的Person记录,将其传递给Index.cshtml视图进行显示。

其他方法分别用于创建、编辑、删除和查看记录。

视图

在这一步中,我们将创建用于显示数据的视图。在Solution Explorer中,右键单击Views文件夹,选择“添加 -> 视图”,命名为Index.cshtml,并添加以下代码:

@model List<MySQL_Demo.Models.Person>

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<p>
    @Html.ActionLink("CreateNew", "Create")
</p>

<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.id)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.name)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.age)
        </th>
        <th></th>
    </tr>

    @foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.id)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.name)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.age)
            </td>
            <td>
                @Html.ActionLink("Edit", "Edit", new { id = item.id }) |
                @Html.ActionLink("Details", "Details", new { id = item.id }) |
                @Html.ActionLink("Delete", "Delete", new { id = item.id })
            </td>
        </tr>
    }
</table>

在上述代码中,我们使用Razor视图引擎创建了一个简单的表格,以显示我们从数据库中查询到的所有Person记录。

其他视图的代码类似,不再赘述。

运行项目

现在,我们已经完成了使用ASP.NET MVC 4和EF5访问MySQL数据库的应用程序的所有必要步骤。接下来,我们需要在Visual Studio中启动调试,并在浏览器中打开应用程序页面。

在应用程序中,可以添加、编辑、删除和查看Person记录。所有数据都将保存到我们之前创建的test数据库中的person表中。

总结

本文介绍了如何在ASP.NET MVC 4中使用EF5访问MySQL数据库。我们通过安装MySQL数据库和Connector/NET连接器来创建数据库,然后创建了一个用于访问数据库的数据模型和数据访问类。最后,我们创建了一个用于管理数据的控制器和视图。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程