跟着微软学ASP.NET Core(三) -使用EF框架与身份验证创建CRUD页面

本教程在已有的ASP.NET Core项目基础上,介绍如何结合EF Core和身份验证功能创建CRUD操作。首先通过VS设置个人身份验证,然后连接自定义数据库,实施EF的反向工程。接着在Startup.cs中注册并配置数据库上下文,创建控制器和视图,实现CRUD页面。最后,通过运行项目进行测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这篇文章主要是在 通过现有数据库在 ASP.NET Core 上开始使用 EF Core 和 通过现有数据库在 ASP.NET Core 上开始使用 EF Core 这两篇文章作为基础的,可以先读完这两篇文章并做完文章的步骤再来看看。

好了,我们现在开始。

在创建项目的时候,我们会使用身份验证。

在右边的“Change Authentication” 选择个人身份验证。这样一来,我们的网站就默认有了身份验证功能了,如果这时候我们在网站上面使用注册、登陆的功能的话,网站会自动建立用于身份验证的数据库,但是,因为自己的数据库已经有了数据了,所以我希望可以使用我自己的数据库。

这时候,我们在VS的服务器资源管理器增加我们的数据库文件(有时会失败,因为数据库文件和数据库还在连接,把数据库文件从数据库分离就好。)

然后右键数据库,在属性窗口复制数据库的连接字符串。我们通过这个连接字符串来连接EF框架来对数据进行操作。

然后实施EF的反向工程:

Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

把这一段“Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;"替换为我们的连接字符串

不过记住,数据库的表中要有主键,不然生成会失败。

好了,之后我们在Startup.cs 中注册并配置上下文

using EFGetStarted.AspNetCore.ExistingDb.Models;

引用我们的models,请注意,这里是“项目名称.Models”的模式,每个人都不同。

然后找到ConfigureServices(...)方法,增加这一句话

(这里要是按照下面来输入BloggingContext、NewsTablesContext的上下文类是不存在的,可以先通跳过这一步,先创建CRUD框架再执行修改)

var connection = @"Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;ConnectRetryCount=0";
    services.AddDbContext<BloggingContext>(options => options.UseSqlServer(connection));

另一种方法,可以使用配置文件

            services.AddDbContext<NewsTablesContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

建立完成后,我们可以省事地使用自带的CRUD框架来实现页面。

在解决方案资源管理器中,右键单击“Controllers”文件夹 >“添加”>“新搭建基架的项目”。

上述步骤的视图

在“添加基架”对话框中,点击“包含视图的 MVC 控制器(使用 Entity Framework)”>“添加”。

“添加基架”对话框

填写“添加控制器”对话框:

  • 模型类:你要创建的模型
  • 数据上下文类:用于EF框架与数据库进行操作,你自己起名字,注意要和上面的配置文件中的类如”BloggingContext“这里就是BloggingContext,”NewsContext“这里就是”NewsContext“。

“添加数据”上下文

  • 视图:将每个选项保持为默认选中状态
  • 控制器名称:保留默认的 MoviesController
  • 点击“添加”

“添加控制器”对话框

然后就点运行,并移动到页面进行测试吧。

 

 

ps 输入中文会有乱码,修改页面的编码方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值