.Net Core 出來了很久,作為一個(gè).Net的忠實(shí)信徒,卻這么久沒有去觸碰它,實(shí)在慚愧,最近呢,在學(xué)習(xí)Nodejs,Linux Shell腳本,Java開發(fā),列式存儲(chǔ)數(shù)據(jù)庫,這也是沒辦法,畢竟吃飯要緊,公司讓做什么,那就去學(xué)習(xí)什么,最后發(fā)現(xiàn)學(xué)成了學(xué)富半車,什么都入了門,但是啥都不同,也就是擦個(gè)邊球,連最愛的.net都好久沒有去寵幸了,感覺我倆已經(jīng)陌生了許多,今天突然起興,看看這個(gè).NET
CORE到底如何傾國傾城,首先呢,說明下,我在虛擬機(jī)中安裝了win10,因?yàn)槲沂莔ac系統(tǒng),當(dāng)然筆記本是公司的,我可沒有錢買這個(gè)東東,win10 在去年已經(jīng)安裝了vs2017,只是偶爾需要程序處理下數(shù)據(jù),所以用最熟悉的c#去完成,感覺vs沒啥大變化,今天我要試試vs for mac到底如何呢,來來來,我們一起去看看,mac版的vs如何安裝,我就不說了,你們百度,有很多人都貼圖說明了,我覺得這種教程沒啥意義了,當(dāng)然今天我要寫的可能也沒啥,但是確實(shí)我遇到了,所以我要說下,作為筆記,萬一我以后又遇到了忘了咋辦,好了,說下我要干什么,很簡單
1,創(chuàng)建一個(gè)mvc項(xiàng)目
2,創(chuàng)建EF數(shù)據(jù)庫模型(dbfirst,因?yàn)槲液軕校?/p>
3,mvc+ef結(jié)合查詢數(shù)據(jù),展示出來
好了就這么簡單,我們開始吧!
首先創(chuàng)建一個(gè)mvc項(xiàng)目,這個(gè)很簡單,我也貼圖示意下:

打開vs for mac,樣子還是很小清新的,我喜歡。

創(chuàng)建項(xiàng)目,.Net Core -> App -> Asp.Net CoreWeb App (MVC)? 選好了就下一步吧!

給自己的項(xiàng)目起個(gè)牛逼的名字,就像你有了自己的兒子,給他起個(gè)很牛逼的名字一樣。

MVC項(xiàng)目就這樣創(chuàng)建好了,看看我們的左邊項(xiàng)目結(jié)構(gòu),是不是和傳統(tǒng)的項(xiàng)目很像,特別喜歡.net的項(xiàng)目結(jié)構(gòu),非常清晰,不像java似的亂七八糟的,我不是說java技術(shù)不好,我只是說java的結(jié)構(gòu)設(shè)計(jì)怎么可以這么亂,不能改進(jìn)下嗎?開發(fā)一味的追求繁瑣復(fù)雜,有意思的嗎?科技的進(jìn)步就是為了讓事情做起更簡單,如果更復(fù)雜了,是不是有悖我們的初衷呢,所以,大愛.net.么么噠!
我們二話不說,運(yùn)行下看看

完美運(yùn)行,而且還是響應(yīng)式的網(wǎng)頁,此刻應(yīng)有掌聲(啪啪啪)
至于項(xiàng)目結(jié)構(gòu)中有很多配置文件是我們沒見過的,這里呢很慚愧,我剛接觸,還是不是很清楚,所以,我就不瞎說了,下面我們繼續(xù)創(chuàng)建EF-DBFIRST
首先,我們先創(chuàng)建數(shù)據(jù)庫,我這里用SqlServer數(shù)據(jù)庫,我只能在另一臺(tái)機(jī)器創(chuàng)建了。

這是我的數(shù)據(jù)庫,兩個(gè)表作為例子,一個(gè)User代表用戶,一個(gè)Post,表示用戶的帖子。好了下面我們回到vs上,繼續(xù)創(chuàng)建我們的EF吧!首先先創(chuàng)建一個(gè)EF文件夾,我們創(chuàng)建的EF就會(huì)在這里生成。下面才是干貨
通過NuGet添加引用工具包,下面是列表
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.SqlServer.Design
Microsoft.EntityFrameworkCore.Tools
Microsoft.EntityFrameworkCore
右擊Dependencies后點(diǎn)擊Add Packages…

然后搜索Microsoft.EntityFrameworkCore,在搜索結(jié)果中找到這幾個(gè)包選中,根據(jù)自己.Net core 的版本選擇相應(yīng)的版本,然后就添加吧!過程中會(huì)彈出一些詢問窗口,接受就好了,反正不接受,你就不能用!

這個(gè)弄好了以后,不要著急,還沒完事,下面右擊項(xiàng)目,選擇Tools然后點(diǎn)擊Edit File,就看到了xml文件,好了我們簡單的修改下,如下圖

在圖中所示地方添加紅框子里的這句話,方便你們復(fù)制,我在這里也貼一下。
“<DotNetCliToolReference?Include="Microsoft.EntityFrameworkCore.Tools.DotNet"?Version="2.0.0" />”
保存好了嗎?我們繼續(xù)右擊項(xiàng)目打開終端,Tools中的Open in Terminal,在彈出的終端中輸入dotnet ef試試。如果是下圖,恭喜你,成功了一半了!

當(dāng)讓我最開始可不是顯示這個(gè),如果你和我一樣遇到了這種情況

如果提示你
“Version for package `Microsoft.EntityFrameworkCore.Tools.DotNet` could not be resolved.”
這句話,也不用擔(dān)心,我也解決了,我在這個(gè)網(wǎng)頁中找到的答案
有時(shí)間你可以看看。

人家說,用了這個(gè)東西,需要restore一下,所以在終端先輸入“dotnet restore”然后在試試dotnet ef然后就可以了!
好了,我們現(xiàn)在可以創(chuàng)建我們的EF模型了。
在終端輸入
"dotnetef dbcontext scaffold "data source=192.168.1.101;initial catalog=MyWebDB;userid=sa;pwd=sa;" Microsoft.EntityFrameworkCore.SqlServer -c MyWebDBEntities-oEF"
當(dāng)然數(shù)據(jù)庫ip是你自己的,名字也是你自己的,密碼也是,最后有個(gè)-c參數(shù)表示生成的EF名字,-o參數(shù)是創(chuàng)建在哪個(gè)目錄下,還記得我們創(chuàng)建了EF文件夾嗎?這里用到了,好了我們?cè)囋嚢桑∵@個(gè)過程我們需要等一小會(huì),如果沒有提示任何問題,那么我們就成功了80%,歐耶?。?!

這是創(chuàng)建完EF文件夾下的文件,好了,我們可以寫點(diǎn)小程序運(yùn)行下了!
在Controllers文件夾中創(chuàng)建一個(gè)TestControllers.cs控制器文件

這是Index中的代碼
在Views中創(chuàng)建Test文件夾,再創(chuàng)建index.cshtml視圖文件

好了,我們?cè)谶\(yùn)行吧,把路徑后面加上/Test就好了

這就是效果!
好了,就寫到這里吧!我知其然,未知其所以然,所以能,大家可以提問題,我會(huì)去研究提高的!謝謝閱讀!