手机版

代码优先从零开始搭建Asp .Net Core2.0网站

时间:2021-09-04 来源:互联网 编辑:宝哥软件园 浏览:

一步步教大家如何搭建Asp .Net Core2.0网站,以下所有都是建立在。NETCore2.0环境已经搭建好

右键解决方案新建项目

选择WebASP .NETCoreWeb应用程序(.净核心)

选择网应用程序,暂时不选择启用码头工人,身份验证选择个人用户账户(会自动生成一系列和用户认证的代码)

随后生代码层次目录如下:

其中会包含身份信息的相关实现,比如相关实体信息(用户)之类的,如果想对扩展微软自动的生成的用户实体类,可在模型中的应用程序用户下扩展,在此应用程序用户中添加属性即可:比如添加叫微信属性,添加后如下:

使用系统;使用系统。集合。通用;使用系统Linq .使用系统。线程化。任务;使用微软。身份;命名空间DotNetCore20 .网络。型号{ //通过将属性添加到应用程序用户类公共类应用程序用户:标识用户用户{ ///summary ///微信id/汇总公共字符串微信{获取设置;} }}在之后生成运行并迁移,数据库的AspNetUsers中就会多出微信属性。

一:安装引用

nugnet恢复引用失效时,可在程序包管理控制台输入:

dotnet还原即可

会发现在恢复指令后在NuGet中会有一个微软。可视化工作室。网络。代码生成。设计的报错,信息如下:

已使用".网便携,版本=v0.0,配置文件=Profile259 .NETFramework,版本=v4.6.1 "而不是项目目标框架".netapp coreapp,版本=v2.0 "还原了包"微软。组成1.0.27 .这可能会导致兼容性问题

这个库是ASP .净核心的代码生成工具。包含用于生成控制器和视图的dotnet-aspnet-codegenerator命令,暂时可先卸载,不影响项目运行。

对项目类库的引用有以下几种方式

1.Nuget去安装(官网https://www.nuget.org/packages/)

2.右键依赖项点击菜单中的添加引用

3.可在程序包管理控制台输入:安装软件包引用类库名称

4.可右键编辑csproj工程文件进行添加,然后执行dotnet还原

二。创建实体程序集

右键解决方案添加项目

首先创建抽象类,供实体实体继承,主要为每个实体提供公用属性

使用系统;使用系统。集合。通用;使用系统。组件模型。数据注释;使用系统。运行时。序列化;使用系统。文字;命名空间DotNetCore20 .实体。核心{ ///摘要///数据库表基底////摘要[Serializable]公共抽象分部类基础实体{///summary///Id///summary[DataMember]公共长Id { get设置;} ///摘要///数据库資料版號////摘要1572532228公共字节[]行版本{ get设置;} ///摘要///创建时间////summary[DataMember]公共DateTime创建时间{ get设置;} ///摘要///更新时间////summary[DataMember]public DateTime UpdateTime { get;设置;} ///摘要///状态////summary[DataMember]public EnumState State { get;设置;} } ///摘要///状态////摘要公共枚举枚举状态{ ///摘要///删除////摘要删除=1,///摘要///正常////摘要普通=0,}}添加一个用户扩展用户扩展类(实体):

使用DotNetCore20 .实体。核心;使用系统;使用系统。运行时。序列化;命名空间DotNetCore20 .实体{ [DataContract]公共类用户扩展:基本实体{///summary///用户id////summary[DataMember]public long UserID { get;设置;} ///摘要///昵称////摘要[DataMember]公共长昵称{获取设置;} }}三。创建数据层

添加引用

木豆层需要用到仰角指示器实体映射相关和我们自己前面定义的实体中的用户扩展实体表,所以要添加相关引用,DotNetCore20 .实体和微软。实体框架工作中心。工具

快捷键:Ctrl Alt o打开程序包管理器输入以下:

安装包微软。实体框架工作中心。工具

如果是网络限制下载失败,推荐把nuget镜像改为博客园资源,方法如下:

右键解决方案管理解决方案的nuget程序包。显示如下:

新建一个数据上下文类,目录结构如下:

DotNetCoreDbContext内部代码改为以下:

使用DotNetCore20 .实体;使用微软实体框架工作中心命名空间DotNetCore20 .DAL。DbContext{公共类微软DotNetCoreDbContext :entityframeworkore。DbContext { public DotNetCoreDbContext(DbContext options sdotnetcoredbcontext options): base(options){ } public dbset user extend user extend { get;设置;} }}在此基本的实体映射相关的代码都完毕,现在还有一步,就是数据库连接字符串的配置

首先打开appsettings.json文件,在ConnectionStrings节点下增加以下

复制代码代码如下: " DotNetCoreConnection " : "服务器=(localdb)\ \ mssqllocaldb;数据库=DotNetCoreDb可信_连接=真;"多重活动结果集=真"

增加后如下:

{ ' ConnectionStrings ' : { ' DefaultConnection ' : ' Server=(localdb)\ \ mssqllocaldb;数据库=DotNetCoreDefaultDb可信_连接=真;MultipleActiveResultSets=true ',' DotNetCoreConnection ' : ' Server=(localdb)\ \ mssqllocaldb;数据库=DotNetCoreDb可信_连接=真;MultipleActiveResultSets=true ' }、“日志记录”: {“包含范围”: false、“调试”: {“日志级别”: {“默认”:“警告”}、“控制台”: {“日志级别”: {“默认”:“警告”} }再打开网网站下的启动文件,在配置服务方法中添加一下行:

//自定义数据库连接字符串服务AddDbContextDotNetCoreDbContext(选项=选项.使用SqlServer(配置GetConnectionString(' DotNetCoreConnection ');增加后如下:

使用系统;使用系统。集合。通用;使用系统Linq .使用系统。线程化。任务;使用微软AspNetCore。建设者使用微软。诊断。实体框架工作中心;使用微软。身份;使用微软AspNetCore。超文本传送协议(Hyper Text Transport Protocol的缩写)使用微软实体框架工作中心使用微软。托管;使用微软。扩展。配置;使用微软。扩展。依赖注射;使用微软。扩展。选项;使用DotNetCore20 .网络。数据;使用DotNetCore20 .网络模型;使用DotNetCore20 .网络服务;使用DotNetCore20 .DAL。DbContext命名空间DotNetCore20 .Web{公共类启动{公共启动(图标配置配置){配置=配置}公共图标配置{ get} //此方法由运行时调用。使用此方法向容器添加服务public void ConfigureServices(IServiceCollection services){ services .AddDbContextApplicationDbContext(选项=选项.使用SqlServer(配置GetConnectionString(' DefaultConnection ');//自定义数据库连接字符串服务AddDbContextDotNetCoreDbContext(选项=选项.使用SqlServer(配置GetConnectionString(' DotNetCoreConnection ');服务AddIdentityApplicationUser,IdentityRole().AddEntityFrameworkStoresApplicationDbContext().AddDefaultTokenProviders();//添加应用程序服务。服务AddTransientIEmailSender,AuthMessageSender();服务AddTransientISmsSender,AuthMessageSender();服务addMVc();} //运行时调用此方法。使用此方法配置超文本传送协议请求管道公共空间配置(IApplicationBuilder)应用程序,ihostingenvirmentenv){ if(env .IsDevelopment()) { app .usedeveloper异常页();应用程序.UseBrowserLink();应用程序.usedatabase错误页();} else { app .UseExceptionHandler('/Home/Error ');}应用程序.UseStaticFiles();应用程序.UseAuthentication();应用程序.UseMvc(routes={ routes .MapRoute(名称: '默认',模板: ' {控制器=Home }/{操作=Index }/{ id?}');});} }}运行程序,点击登陆(只要访问数据库的操作都可),出现错误页面:

点击应用迁移

,即自动迁移数据库。

由于两个数据库,只会自动迁移关于用户的表AspNetUsers,

所以还得对中程序包管理器中下命令迁移。

添加-迁移第一个迁移-上下文DotNetCoreDbContext

以上命令执行后再执行以下命令:

update-Database-ContextDotNetCoreDbContext;

然后查看数据库会发现多出两个数据库,

以DotNetCoreDefaultDb生成的为例,会生成如下表:

其中AspNetUsers就中会有之前添加的微信字段

然后再次运行程序:

这样一个完整的Asp .NetCore2.0网站就初步运行起来了

下一篇将在木豆层增加贮藏室仓库和联合工厂,完成简单令人厌恶的东西的统一管理

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

版权声明:代码优先从零开始搭建Asp .Net Core2.0网站是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。