.net core +codefirst(.net core 基础入门,适合这方面的小白阅读,本文使用mysql或mssql)
前言
.net core mvc和 .net mvc开发很相似,比如 视图-模型-控制器结构。所以.net mvc开发员很容易入手.net core mvc 。但是两个又有细微的区别,比如配置.net mvc中web.config和global.asax消失,而在.net core mvc中则是startup.cs、program.cs、appsettings.json等等。所以想要深入了解.net core就必须更加深入的学习。而刚刚开始的学习则是通过建立一个连接数据库的demo开始。由于配置文件的不同,导致很多新手在连接数据库,或者使用codefisrt开发却不知道怎么配置。所以我在这里较为详细的写一个demo提供给需要此方面的博友。(如有不正确地方欢迎各位指正)
开发工具vs2017
数据库 mssql2014
.net core环境 .net core2.1
1】先建立model层
1.1先建立一个空白方案
然后建立一个内库,用来存放model:注意选择内库(.net core)
1.2在model层添加内容
现在nuget中分别引用:microsoft.entityframeworkcore.sqlserver和microsoft.entityframeworkcore.tools,注意两者版本号最好相同,以免出错
然后加入model和数据库的上下文类database(这个名字自己随意取),我在这里先只建立一个user表(注意在database中需要
using microsoft.entityframeworkcore;)
public class database : dbcontext { //构造方法 public database(dbcontextoptions<database> options) : base(options) { } #region 数据区域 public dbset<user> user { get; set; } #endregion }
至此,model层配置完毕
2】开始建立.net core项目
先建立一个.net core项目
项目建立完毕之后先引用model层
然后进入startup.cs配置数据库连接,这里首先引用using microsoft.entityframeworkcore;和model层 using modelx;然后配置连接
注意services.adddbcontext<database>中的database是model层中的 数据库的上下文类,别弄错了
以上全部完成,然后添加一个例子看看效果,在任意一个控制器中写入以下代码然后运行(.net core 的一个好处就是内置依赖注入)
这时,会发现程序报错
原来,.net core 和.net mvc相比,在使用codefirst时候,除了配置文件之外,.net core 还需要在控制台中执行以下两行代码
先输入:add-migration myfirstmigration(名字。这里随意取未myfirstmigration) 在输入:update-database
首先我们打开控制台:
先输入:add-migration myfirstmigration然后回车等待运行完毕
然后输入:update-database 回车,等到全部运行完毕之后,再运行项目看看,就发现项目正常运行,以及数据库正常生成
3】ps:关于连接数据库的第二种方法。
关于上文连接数据库,或许有人会问:和自己连接的不太一样,.net core 连接字符串不是应该写在appsettings.json里面?下面,我就将连接数据库的第二种方法写在下面,毕竟多多益善
如果想尝试这种方法的话,别忘了在控制台输入
先输入:add-migration myfirstmigrations(名字,为了和上面区分,这里加了s)
在输入:update-database
4】ps:关于连接mysql数据库。
首先在model层的nuget中引入 microsoft.entityframeworkcore.tools和 pomelo.entityframeworkcore.mysql(圆圈是连接mssql必备、方块是连接mysql必备)
然后返回ui层的appsettings.json中修改连接字符串
然后进入startup.cs注入上下文
最后,在系统运行之前别忘记在nuget控制台中运行那两行命令
为迁移搭建基架运行:add-migration myfirstmy
将新迁移应用到数据库运行:update-database
另外,需要注意的是,在默认项目这里选择你mode层的名字,否者运行错误
当以上全部完成之后,在运行程序,然后去看mysql数据库
建议各位手打一次,加深印象。如果想偷懒的,付出代价(1积分)吧
如果觉得本文对你有用的话,帮忙在最下方点个推荐吧∑(っ°д°;)っ
下一篇: volatile实现原理