用VS Code创建ASP.NET Core Razor Pages Web 应用:RpMoviesDemo。(DB First,连接MySql数据库)

2023-10-29

目录

一、使用Mac OS终端创建一个.Net Core Razor Pages Web 应用。

二、使用VS Code的NuGet Package Manager GUI插件添加相关的NuGet程序集。

三、在MySql数据库中创建MoviesDB数据库和Movie表,并插入少量测试数据。

四、使用dbcontext scaffold命令自动生成数据库表对应的对象类及数据库操作类。

安装dotnet -ef命令工具。

五、实现页面简单的增删查改功能。

5.1 页面效果。

5.2 代码集合。 


一、使用Mac OS终端创建一个.Net Core Razor Pages Web 应用

输入以下命令:

// 切换到 Projects 文件夹路径下
cd Projects


// 使用 ASP.NET Core 创建 Razor Pages Web 应用,应用名称为 RpMoviesDemo
dotnet new razor -o RpMoviesDemo


// 切换到 RpMoviesDemo 文件夹路径下
cd RpMoviesDemo


// 使用VS Code 工具自动打开项目 RpMoviesDemo
code .

 

在 VS Code 工具中打开的项目结构如下:

二、使用VS Code的NuGet Package Manager GUI插件添加相关的NuGet程序集。

在VS Code中输入快捷键:Command + Shift + P,然后输入关键字NuGet Package Manager GUI进行搜索,选择回车。

依次添加以下程序集:

Microsoft.EntityFrameworkCore

Microsoft.EntityFrameworkCore.Design

Microsoft.EntityFrameworkCore.Tools

Microsoft.EntityFrameworkCore.Relational

Pomelo.EntityFrameworkCore.MySql

添加完成后,可以在 RpMoviesDemo.csproj 文件中看到以下程序集被自动添加。

三、在MySql数据库中创建MoviesDB数据库和Movie表,并插入少量测试数据。

在MySql数据库中的建库建表SQL语句:

create database MoviesDB;
 
 
use MoviesDB;
 
 
create table Movie(
ID int not null auto_increment,
Title nvarchar(100) not null,
ReleaseDate datetime not null, 
Genre nvarchar(100) null,
Price decimal(18, 2) not null,
Rating nvarchar(50) null,
primary key(ID)
);

在MySql数据库中向Movie表中插入几条数据:

INSERT INTO Movie
(
Title,
ReleaseDate,
Genre,
Price,
Rating
)
VALUES
(
'中国机长',
'2018-10-01 02:46:32',
'冒险',
45.00,
'9折'
);
 
INSERT INTO Movie
(
Title,
ReleaseDate,
Genre,
Price,
Rating
)
VALUES
(
'哪吒之魔童降世',
'2019-07-10 08:34:21',
'动画',
40.00,
'8.5折'
);
 
INSERT INTO Movie
(
Title,
ReleaseDate,
Genre,
Price,
Rating
)
VALUES
(
'阿凡达',
'2019-09-30 11:03:26',
'冒险',
55.00,
'9.8折'
);
 
INSERT INTO Movie
(
Title,
ReleaseDate,
Genre,
Price,
Rating
)
VALUES
(
'姜子牙',
'2021-06-28 12:45:02',
'动画',
42.00,
'8.8折'
);
 
 
INSERT INTO Movie
(
Title,
ReleaseDate,
Genre,
Price,
Rating
)
VALUES
(
'战狼2',
'2021-07-01 02:31:45',
'冒险',
48.00,
'9.5折'
);

四、使用dbcontext scaffold命令自动生成数据库表对应的对象类及数据库操作类。
 

在项目中添加 Models 空文件夹

安装dotnet -ef命令工具。

给.Net做数据迁移,需要安装dotnet -ef命令工具。按需输入下述命令之一:

// .Net Core 3.0 以上版本dotnet ef命令不再是sdk的一部分,需要单独安装
// 以下命令默认安装的是最新版本
 
dotnet tool install --global dotnet-ef
 
 
// 如果项目中使用的并不是最新版本,则还是不能使用,需要安装对应版本
// 以下命令安装的是指定版本
 
dotnet tool install --global dotnet-ef --version 3.1.1
 
 
 
// 安装错误可使用以下卸载命令:
 
dotnet tool uninstall --global dotnet-ef
 
 
// dotnet-ef命令工具安装成功后,还需要给项目引用NuGet包(如果没有引入):
 
dotnet add package Microsoft.EntityFrameworkCore.Design

安装完dotnet -ef命令工具后,执行以下命令,EF Core 将自动生成相应的对象类及操作类。

dotnet ef dbcontext scaffold "server=127.0.0.1;port=3306;uid=
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用VS Code创建ASP.NET Core Razor Pages Web 应用:RpMoviesDemo。(DB First,连接MySql数据库) 的相关文章

  • 在 MySQL 5.6 中重置 ROOT 密码

    我一直在关注这些说明 http dev mysql com doc refman 5 6 en resetting permissions html用于重置root本地安装的密码MySQL 5 6在 Windows 7 笔记本电脑上 我停止
  • MySQL更改表,添加具有唯一随机值的列

    我有一个表 我添加了一个名为phone 该表还有一个 id 设置为自动增量的主键 如何将随机值插入到电话列中 该值不会重复 以下 UPDATE 语句确实插入了随机值 但并非所有值都是唯一的 另外 我没有被卖掉 我投了phone字段也正确 但
  • 如何解决 MySQL Workbench 上的这些行错误?

    正如您所看到的 我的代码中没有语法错误或类似的错误 你们能帮我吗 我想这只是错误标记机制中的一个小错误 尝试编辑代码或关闭此编辑器并打开一个新编辑器 如果您有重现此问题的步骤列表 您甚至可以创建一个错误报告 http bugs mysql
  • 提高mysql导入速度[关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我有一个很大的数据库22GB 我曾经用过进行备份mysqldumpgzip 格式的命令 当我提取 gz 文件时 它会生成 sql文件的
  • sqlalchemy 中的随机 ID(pylon)

    我正在使用 pylons 和 sqlalchemy 我想知道如何将一些随机 id 作为primary key 最好的方法是使用随机生成的 UUID import uuid id uuid uuid4 uuid 数据类型在某些数据库中本机可用
  • MySQL如何进行浮点加法的数学计算?

    我测试过SELECT 0 1 0 2 用MySQL MariaDB 查询 它返回了正确的答案 MariaDB none gt SELECT 0 1 0 2 0 1 0 2 0 3 1 row in set 0 000 sec 在大多数编程语
  • mysql查询先慢后快

    我有 2 个 myISAM 表 分别称为 tests 和 completed tests 一个有 170 个条目 另一个有 118k 条目 当我运行此查询时 SELECT ct archive ct status ct score ct u
  • 启动服务器后,带有sequelize的Nodejs无法在mysql工作台中创建表

    我开始学习如何使用构建 Rest APINodejs Expressjs Sequelize and MySQL using Mysqlworkbench 我的问题 启动服务器后 该表不是由Sequelize并且没有表Mysqlworkbe
  • 脚本超时已过,如果要完成导入,请重新提交相同的文件,导入将恢复

    我有一个数据库 拉开拉链后的尺寸50mb拉链尺寸7mb所以当我尝试导入数据库时zipped 7mb 几分钟后 它抛出此错误 脚本超时已过 如果您想完成导入 请resubmit相同的文件和导入将恢复 我已经重新提交了 但仍然没有导入全部数据
  • MySQL 中有“connect by”替代方案吗?

    如果我使用 Oracle 有connect by可用于创建分层查询的关键字 目前我正在一个项目中使用MySQL 我想知道是否有替代方案connect by在 MySQL 中 我尝试过谷歌 但到目前为止还没有结果 我想要实现的是通过一个查询从
  • ZeroDateTimeBehavior=convertToNull 在使用 hibernate 的 jdbc url 中不起作用

    通过 extern 属性文件 url 指定如下 jdbc mariadb xxxxx 3306 xxxxx zeroDateTimeBehavior convertToNull 连接工作正常并且能够查询数据库 通过休眠 我创建了一个映射到带
  • 重复键错误不会取消/回滚mysql事务

    当在 mysql innodb 事务中时 我希望重复的键错误会导致回滚 它没有 相反 它只是抛出一个错误并继续执行下一个命令 一旦到达 COMMIT 命令 事务将被提交 没有重复键导致命令 这是预期的行为吗 如果是这样 如何设置它以便在发生
  • 将 Python 列表(JSON 或其他)插入 MySQL 数据库

    所以我在Python中有一堆数组数据 嗯 相反 我有一个清单 我试图将此数组存储到 MySQL 数据库中的单个单元格中 我尝试使用 JSON 来序列化我的数据 但也许我不明白 JSON 是如何工作的 因此 在连接到我的数据库后 我尝试了上游
  • 如何使用外连接和分组依据在查询中包含 NULL 值

    我有两个表 其中包含以下示例数据 Table 1 item name item id item desc 1 apple 2 orange 3 banana 4 grape 5 mango Table 2 user items user i
  • MyBatis 枚举的使用

    我知道以前有人问过这个问题 但我无法根据迄今为止找到的信息实施解决方案 所以也许有人可以向我解释一下 我有一个表 状态 它有两列 id 和 name id是PK 我不想使用 POJO Status 而是使用枚举 我创建了这样一个枚举 如下所
  • 级联删除时触发调用

    我在 MySQL 中有表 A 它有一些对其他表 B C D 的级联删除的引用 当从 A 中删除某些内容时 我需要使用触发器 当我直接从 A 删除记录时 此触发器起作用 但它不适用于级联删除 是否存在任何版本的 MySQL 可以让我的触发器与
  • SQL 查询结果为字符串(或变量)

    是否可以将SQL查询结果输出到一个字符串或变量中 我的php和mysql不好 假设我有数据库 agents 其中包含列 agent id agent fname agent lname agent dept 使用此查询 sql SELECT
  • 如何将变量设置为触发器 MYSQL 内存储过程的结果?

    我这里有一个小问题 我正在为我的数据库工作创建一个触发器 但我不知道如何在触发器内使用存储过程 我想将过程的结果保存在变量中 然后使用稍后在 IF 比较器上变量 这是我的代码 DELIMITER CREATE TRIGGER insert
  • MySQL - 从另一个表插入与常量合并的数据

    我有一个包含一些数据的临时表 products temp 并且我有另一个需要将数据插入其中的表 产品 我需要在新记录上手动设置一些常量 例如vendor id 1等 是否可以在一次请求中插入临时表数据和常量 临时产品 product nam
  • 无法将句子插入数据库

    我有一些句子 我必须选择由 6 个以上单词组成的句子 然后它们将被插入到数据库中

随机推荐