sql注入pythonpoco_ASP.NET Core MVC (3)模型Model及基架工具

这一章节中,我们开始认识一下MVC中的M,也就是Model。

Entity Framework Core是微软提供给开发者的一个ORM框架,类似java中的MyBatis和Hibernate。将Plain Old CLR Objects(POCO)类可以直接转换为数据库中的增删改查的操作代码,减少重复开发代码量。

POCO

这种类是只有属性没有方法的类,纯粹表示数据,可以用于和数据库之间的映射。

EF Core库只要求我们写POCO类,然后该库就可以根据这些类自动在数据库中建立对应的表,以及相关的增删改查。

新建model

Movie.cs

using System;

using System.ComponentModel.DataAnnotations;

namespace MvcMovie.Models

{

public class Movie

{

public int Id { get; set; }

public string Title { get; set; }

[DataType(DataType.Date)]

public DateTime ReleaseDate { get; set; }

public string Genre { get; set; }

public decimal Price { get; set; }

}

}

安装EFCore SqlProvider

示例选用SqlServer Local数据库,专门用于开发环境的sql server数据库,因此需要安装EFcore库需要用到的sqlServer的Provider库,

选中Tools工具>NuGet 包管理器 > 程序包管理器控制台 (PMC).

Install-Package Microsoft.EntityFrameworkCore.SqlServer

在安装provider的时候,因为依赖,所以也会自动安装EFCore库。

创建数据库上下文

所谓数据库上下文,就是告诉EFCore,我们需要通过什么类建立表数据,以及对该类在表中的增删改查。

创建Data文件夹,添加MvcMovieContext.cs,添加代码。

using Microsoft.EntityFrameworkCore;

using MvcMovie.Models;

namespace MvcMovie.Data

{

public class MvcMovieContext : DbContext

{

public MvcMovieContext (DbContextOptions options)

: base(options)

{

}

public DbSet Movie { get; set; }

}

}

EFCore需要的上下文都需要以 DbContext作为基类,DbSet表示一个集合,对应数据库中的一张表,其中的实体对象则对应一行记录。这里Movie为DbSet类型,所以表名为Movie,DbSet中存储的是Movie即我们自定义的类型,对应一行记录的结构。

注册数据库上下文

ASP.net core基本使用了依赖注入的技术思想。EFCore DBContext作为一种服务需要注册进去才能使用。 在Startup.cs中进行注册,添加如下2行代码

using MvcMovie.Data;

using Microsoft.EntityFrameworkCore;

然后在ConfigureServices中添加一行代码,如下斜体,

public void ConfigureServices(IServiceCollection services)

{

services.AddControllersWithViews();

*

services.AddDbContext(options =>

options.UseSqlServer(Configuration.GetConnectionString("MvcMovieContext")));*

}

Configuration.GetConnectionString("MvcMovieContext")是从文件appsettings.json中获取数据库连接字符串。

在appsettings.json中添加一个key:value

"ConnectionStrings": {

"MvcMovieContext": "Server=(localdb)\\mssqllocaldb;Database=MvcMovieContext-1;Trusted_Connection=True;MultipleActiveResultSets=true"

}

搭建基架

这是一个专门用于对一组经常关联在一起的开发步骤进行整体创建的工具。比如创建一个模型,会随后创建控制器,一般都会要有增删改查以及对应视图这些开发操作,通过这个功能,就可以一步搭建完毕。无需重复劳动。

右键Controllers选择添加>新搭建基架项目,选择Entity FrameWork的MVC。

弹出对话框选择Model class,上下文选择MvcMovieContext,其他都是默认即可。

然后基架工具会创建两类东西:

1. Controller: Controllers/MoviesController.cs

2. View:Views/Movies/*.cshtml (Create, Delete, Details, Edit, and Index)

也就是说,通过Model和MvcMoviewContext上下文,就把MVC中剩下的VC两样代码全都自动创建完成了。这个过程,微软给出的英文是scaffolding

数据库

MVC都准备好了,接下来就是把数据库创建了,以及对应表创建完成。这个操作,叫做Initial migration。中文翻译的话,应该叫初始化迁移。

migration是EF core的一个功能。用于将Model通过DBContext上下文映射到数据库,并且同步数据库中的表结构。

在程序包管理器控制台 (PMC).中执行如下

Add-Migration InitialCreate

Update-Database

第一行执行,会根据mvcDBContext生成一个Migrations/{timestamp}_InitialCreate.cs文件。

第二句执行,则会执行Migrations/{time-stamp}_InitialCreate.cs文件中的up方法。

完成

到现在。新建一个MVC以及对应数据库的过程就完成了。 运行一下,然后通过http://localhost:59191/Movies 来访问。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要向 ASP.NET Core MVC 模型中添加列表,并将其保存到数据库中,可以按照以下步骤进行操作: 1. 首先,在模型类中定义一个 List 属性,如下所示: ```csharp public class MyModel { public int Id { get; set; } public List<string> MyList { get; set; } } ``` 2. 在数据库中创建一个表,其中包含一个主键列和一个用于存储列表数据的 JSON 列。例如: ```sql CREATE TABLE MyTable ( Id INT IDENTITY(1,1) PRIMARY KEY, MyList JSON NOT NULL ); ``` 3. 在视图中,使用 HTML 的 form 元素来提交表单数据。在表单中,可以通过使用 for 循环和 Html.HiddenFor() 方法来将列表中的每个元素都作为隐藏字段提交。例如: ```html @model MyModel @using (Html.BeginForm()) { for (int i = 0; i < Model.MyList.Count; i++) { @Html.HiddenFor(m => m.MyList[i]) } <input type="submit" value="Submit" /> } ``` 4. 在控制器的 POST 方法中,可以将列表数据保存到数据库中。例如: ```csharp [HttpPost] public IActionResult MyAction(MyModel model) { // Convert the list to a JSON string string json = JsonConvert.SerializeObject(model.MyList); // Insert the data into the database string connectionString = "your_connection_string_here"; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); string sql = "INSERT INTO MyTable (MyList) VALUES (@MyList);"; SqlCommand command = new SqlCommand(sql, connection); command.Parameters.AddWithValue("@MyList", json); command.ExecuteNonQuery(); } return RedirectToAction("Index"); } ``` 这样就可以向 ASP.NET Core MVC 模型中添加列表,并将其保存到数据库中了。请注意,此示例使用了 Newtonsoft.Json 库将列表转换为 JSON 字符串。如果您使用的是 .NET Core 3.0 或更高版本,则可以使用 System.Text.Json 库来完成此操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值