使用EF Code First搭建简易ASP.NET MVC网站并允许数据库迁移

  • Post category:C#

以下是使用EF Code First搭建简易ASP.NET MVC网站并允许数据库迁移的完整攻略:

什么是EF Code First

Entity Framework Code First是一种ORM(对象关系映射)框架,它允许开发人员使用.NET对象来定义数据库模型,而不是使用XML或其他配置文件。使用Code First,开发人员可以更轻松地创建和维护数据库,并且使用LINQ查询语言来查询数据。

使用EF Code First搭建简易ASP.NET MVC网站并允许数据库迁移步骤

使用EF Code First搭建简易ASP.NET MVC网站并许数据库迁移的步骤包括以下几个步骤:

  1. 创建ASP.NET MVC项目。
  2. 安装Entity Framework NuGet包。
  3. 创建模型类。
  4. 创建DbContext类。
  5. 启用数据库迁移。
  6. 创建迁移并更新数据库。
  7. 在控制器中使用DbContext。

以下是一个示例,演示如何使用EF Code First搭建简易ASP MVC网站并允许数据库迁移:

  1. 创建ASP.NET MVC项目。

在Visual Studio中,创建一个名为“EFCodeFirstDemo”的新ASP.NET MVC项目。

  1. 安装Entity Framework NuGet包。

在“解决方案资源管理器”中,右键单击“引用”,然后选择“管理NuGet程序包在“NuGet程序包管理器”中,搜索“Entity Framework”,然后安装最新版本的Entity Framework NuGet包。

  1. 创建模型类。

在“Models”文件夹中,创建一个名为“Product”的新类,并添加以下代码:

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

在上面的代码中,我们定义了一个名为“Product”的模型类,它具有三个属性:Id、Name和Price。

  1. 创建DbContext类。

在“Models”文件夹中,创建一个名为“AppDbContext”的新类,并添加以下代码:

public class AppDbContext : DbContext
{
    public DbSet<Product> Products { get; set; }
}

在上面的代码中,我们定义了一个名为“AppDbContext”的DbContext类,并添加了一个名为“Products”的DbSet属性。

  1. 启用数据库迁移。

在“包管理器控制台”中,运行以下命令启用数据库迁移:

Enable-Migrations
  1. 创建迁移并更新数据库。

在“包管理器控制台”中,运行以下命令创建迁移:

Add-Migration InitialCreate

在上面的命令中,“InitialCreate”是迁移的名称。您可以使用任何名称,只要它们是唯一的。

接下来,运行以下命令更新数据库:

Update-Database

在上面的命令中,我们使用迁移创建了一个名为“Products”的表,并将其添加到数据库中。

  1. 在控制器中使用DbContext。

在“Controllers”文件夹中,创建一个名为“ProductController”的新控制器,并添加以下代码:

public class ProductController : Controller
{
    private readonly AppDbContext _dbContext;

    public ProductController()
    {
        _dbContext = new AppDbContext();
    }

    public ActionResult Index()
    {
        var products = _dbContext.Products.ToList();
        return View(products);
    }
}

在上面的代码中,我们创建了一个名为“ProductController”的控制器,并在构造函数中实例化了一个名为“_dbContext”的AppDbContext对象。我们还创建了一个名为“Index”的操作方法,该方法从数据库中检索所有产品,并将其传递给视图。

示例

以下是一个示例,演示如何在视图中显示产品列表:

在“Views\Product”文件夹,创建一个名为“Index.cshtml”的新视图,并添加以下代码:

@model List<Product>

<table>
    <thead>
        <tr>
            <th>Id</th>
            <th>Name</th>
            <th>Price</th>
        </tr>
    </thead>
    <tbody>
        @foreach (var product in Model)
        {
            <tr>
                <td>@product.Id</td>
                <td>@product.Name</td>
                <td>@product.Price</td>
            </tr>
        }
    </tbody>
</table>

在上面的代码中,我们使用Razor语法创建了一个HTML表格,并使用C#代码从模型中检索产品列表。

结论

通过以上示例,我们可以看到如何使用EF Code First搭建简易ASP.NET MVC网站并允许数据库迁移。我们创建了一个名为“Product”的模型类,并使用DbContext创建了一个名为“Products”的表。我们还创建了一个名为“ProductController”的控制器,并在其中使用DbContext从数据库中检索产品。最后,我们创建了一个名为“Index”的视图,并使用Razor语法显示产品列表。