学习了几十天的.net core,今天有空就总结一下吧
在.net平台上又出现了.net core,先不说它有多强大,它的开源和跨平台就很值得我去学习,未来微软的发展方向也一定在.net core上。
哎,话不多说,这里我就自己总结一下自己这些天学习.net core的经验吧。在core中没有那么多系统自己封装的东西了,大多靠下载外部包或者自己来解决。这些天用core+EF+sqlserver做了一个项目,与原始在.net平台还是有区别的。连接数据库时需要在nuget包里下载一个Microsoft.EntityFrameworkCore.SqlServer包,对其引用才能实现,这个项目没有太多要讲,只是注意数据的封装,分层的调用,把项目分为模型层、service层和web层,在模型层又有实体模型(这里要注意于数据库对应,很重要),请求模型和返回模型,具体如下图
对于sqlserver连接然后,设计然后开始项目还是挺轻松的,可是,当我又用.net core+EF+mysql时又遇到很多问题。
1.首先说一下注入服务的问题吧,恩,真是见鬼,在service层下载的包,应用时没有报什么错误,可一打开页面就出错,花了半个小时折腾,就是要在StartUp里面注入一个服务,可以说这个注入服务是core的一个特点,很为重要,几乎一小半的错在这里,引用的service层的每一个类都要在这里注入一下
2.第二个问题就是连mysql遇到的问题,其实也是自己的问题吧,因为以前都玩的sqlserver,既然跨平台了就要多玩一下,哈哈。首先要保证mysql服务是启动的,端口一般是3306,连数据库其实也和sqlserver差不多,只是nuget包不一样了,叫Polemo.EntityFrameworkCore.Mysql,用它就可以使用EF连接数据库了,遇到的问题就是在用startup和appsettings搞了半天,结果还是用自己写的连接数据库上下文弄好的,哎,泪。
3.第三个问题就是新建项目的时候在wwwroot下面不用的一定要删,否则页面说不定会有错误哦
4.第四个问题就是版本不兼容的问题,哎,这个就是要注意咯,如果用的.net core版本是2.1,在nuget包里面下载的可以是更高版本的插件,但是,如果在自己core里面版本已存在的文件包含在你要下载的包里面就要注意了,一定要以core的版本为主,选一个低点的插件包下载。
5.第五个问题就是跳转页面带参的问题,我也弄了一个多小时,不过还是没有成功,以后自己就注意一下把,在js跳转到某个控制器下面的方法页面并带参,获取的参数一直为空,百思不得其解,希望后期的学习自己能够慢慢解决吧。
6.这个问题也是很重要的一个问题,.net core 有自己自带的session,但是不怎么好用,需要将数据转化为byte[]型,所以果断放弃,我又下载了一个session包,用的时候注意也要在startup里面注入一下,注入的内容我就不说了。但是在使用过程中给了session的值,一直获取为空,啊,简直要疯了,最后在我不懈的查看帖子之下,终于知道问题了,将下图中startup里这几行代码删掉就ok了
6.先就写这几点吧,本人还在奋斗.net core中,加油 ヾ(◍°∇°◍)ノ゙