.Net Core 出来了很久,作为一个.Net的忠实信徒,却这么久没有去触碰它,实在惭愧,最近呢,在学习Nodejs,Linux Shell脚本,Java开发,列式存储数据库,这也是没办法,毕竟吃饭要紧,公司让做什么,那就去学习什么,最后发现学成了学富半车,什么都入了门,但是啥都不同,也就是擦个边球,连最爱的.net都好久没有去宠幸了,感觉我俩已经陌生了许多,今天突然起兴,看看这个.NET
CORE到底如何倾国倾城,首先呢,说明下,我在虚拟机中安装了win10,因为我是mac系统,当然笔记本是公司的,我可没有钱买这个东东,win10 在去年已经安装了vs2017,只是偶尔需要程序处理下数据,所以用最熟悉的c#去完成,感觉vs没啥大变化,今天我要试试vs for mac到底如何呢,来来来,我们一起去看看,mac版的vs如何安装,我就不说了,你们百度,有很多人都贴图说明了,我觉得这种教程没啥意义了,当然今天我要写的可能也没啥,但是确实我遇到了,所以我要说下,作为笔记,万一我以后又遇到了忘了咋办,好了,说下我要干什么,很简单
1,创建一个mvc项目
2,创建EF数据库模型(dbfirst,因为我很懒)
3,mvc+ef结合查询数据,展示出来
好了就这么简单,我们开始吧!
首先创建一个mvc项目,这个很简单,我也贴图示意下:
打开vs for mac,样子还是很小清新的,我喜欢。
创建项目,.Net Core -> App -> Asp.Net CoreWeb App (MVC) 选好了就下一步吧!
给自己的项目起个牛逼的名字,就像你有了自己的儿子,给他起个很牛逼的名字一样。
MVC项目就这样创建好了,看看我们的左边项目结构,是不是和传统的项目很像,特别喜欢.net的项目结构,非常清晰,不像java似的乱七八糟的,我不是说java技术不好,我只是说java的结构设计怎么可以这么乱,不能改进下吗?开发一味的追求繁琐复杂,有意思的吗?科技的进步就是为了让事情做起更简单,如果更复杂了,是不是有悖我们的初衷呢,所以,大爱.net.么么哒!
我们二话不说,运行下看看
完美运行,而且还是响应式的网页,此刻应有掌声(啪啪啪)
至于项目结构中有很多配置文件是我们没见过的,这里呢很惭愧,我刚接触,还是不是很清楚,所以,我就不瞎说了,下面我们继续创建EF-DBFIRST
首先,我们先创建数据库,我这里用SqlServer数据库,我只能在另一台机器创建了。
这是我的数据库,两个表作为例子,一个User代表用户,一个Post,表示用户的帖子。好了下面我们回到vs上,继续创建我们的EF吧!首先先创建一个EF文件夹,我们创建的EF就会在这里生成。下面才是干货
通过NuGet添加引用工具包,下面是列表
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.SqlServer.Design
Microsoft.EntityFrameworkCore.Tools
Microsoft.EntityFrameworkCore
右击Dependencies后点击Add Packages…
然后搜索Microsoft.EntityFrameworkCore,在搜索结果中找到这几个包选中,根据自己.Net core 的版本选择相应的版本,然后就添加吧!过程中会弹出一些询问窗口,接受就好了,反正不接受,你就不能用!
这个弄好了以后,不要着急,还没完事,下面右击项目,选择Tools然后点击Edit File,就看到了xml文件,好了我们简单的修改下,如下图
在图中所示地方添加红框子里的这句话,方便你们复制,我在这里也贴一下。
“<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />”
保存好了吗?我们继续右击项目打开终端,Tools中的Open in Terminal,在弹出的终端中输入dotnet ef试试。如果是下图,恭喜你,成功了一半了!
当让我最开始可不是显示这个,如果你和我一样遇到了这种情况
如果提示你
“Version for package `Microsoft.EntityFrameworkCore.Tools.DotNet` could not be resolved.”
这句话,也不用担心,我也解决了,我在这个网页中找到的答案
有时间你可以看看。
人家说,用了这个东西,需要restore一下,所以在终端先输入“dotnet restore”然后在试试dotnet ef然后就可以了!
好了,我们现在可以创建我们的EF模型了。
在终端输入
"dotnetef dbcontext scaffold "data source=192.168.1.101;initial catalog=MyWebDB;userid=sa;pwd=sa;" Microsoft.EntityFrameworkCore.SqlServer -c MyWebDBEntities-oEF"
当然数据库ip是你自己的,名字也是你自己的,密码也是,最后有个-c参数表示生成的EF名字,-o参数是创建在哪个目录下,还记得我们创建了EF文件夹吗?这里用到了,好了我们试试吧!这个过程我们需要等一小会,如果没有提示任何问题,那么我们就成功了80%,欧耶!!!
这是创建完EF文件夹下的文件,好了,我们可以写点小程序运行下了!
在Controllers文件夹中创建一个TestControllers.cs控制器文件
这是Index中的代码
在Views中创建Test文件夹,再创建index.cshtml视图文件
好了,我们在运行吧,把路径后面加上/Test就好了
这就是效果!
好了,就写到这里吧!我知其然,未知其所以然,所以能,大家可以提问题,我会去研究提高的!谢谢阅读!