vs for mac 中用.net core技術(shù)創(chuàng)建mvc+ef項(xiàng)目

.Net Core 出來(lái)了很久,作為一個(gè).Net的忠實(shí)信徒,卻這么久沒(méi)有去觸碰它,實(shí)在慚愧,最近呢,在學(xué)習(xí)Nodejs,Linux Shell腳本,Java開(kāi)發(fā),列式存儲(chǔ)數(shù)據(jù)庫(kù),這也是沒(méi)辦法,畢竟吃飯要緊,公司讓做什么,那就去學(xué)習(xí)什么,最后發(fā)現(xiàn)學(xué)成了學(xué)富半車(chē),什么都入了門(mén),但是啥都不同,也就是擦個(gè)邊球,連最?lèi)?ài)的.net都好久沒(méi)有去寵幸了,感覺(jué)我倆已經(jīng)陌生了許多,今天突然起興,看看這個(gè).NET

CORE到底如何傾國(guó)傾城,首先呢,說(shuō)明下,我在虛擬機(jī)中安裝了win10,因?yàn)槲沂莔ac系統(tǒng),當(dāng)然筆記本是公司的,我可沒(méi)有錢(qián)買(mǎi)這個(gè)東東,win10 在去年已經(jīng)安裝了vs2017,只是偶爾需要程序處理下數(shù)據(jù),所以用最熟悉的c#去完成,感覺(jué)vs沒(méi)啥大變化,今天我要試試vs for mac到底如何呢,來(lái)來(lái)來(lái),我們一起去看看,mac版的vs如何安裝,我就不說(shuō)了,你們百度,有很多人都貼圖說(shuō)明了,我覺(jué)得這種教程沒(méi)啥意義了,當(dāng)然今天我要寫(xiě)的可能也沒(méi)啥,但是確實(shí)我遇到了,所以我要說(shuō)下,作為筆記,萬(wàn)一我以后又遇到了忘了咋辦,好了,說(shuō)下我要干什么,很簡(jiǎn)單

1,創(chuàng)建一個(gè)mvc項(xiàng)目

2,創(chuàng)建EF數(shù)據(jù)庫(kù)模型(dbfirst,因?yàn)槲液軕校?/p>

3,mvc+ef結(jié)合查詢(xún)數(shù)據(jù),展示出來(lái)

好了就這么簡(jiǎn)單,我們開(kāi)始吧!

首先創(chuàng)建一個(gè)mvc項(xiàng)目,這個(gè)很簡(jiǎn)單,我也貼圖示意下:

打開(kāi)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似的亂七八糟的,我不是說(shuō)java技術(shù)不好,我只是說(shuō)java的結(jié)構(gòu)設(shè)計(jì)怎么可以這么亂,不能改進(jìn)下嗎?開(kāi)發(fā)一味的追求繁瑣復(fù)雜,有意思的嗎?科技的進(jìn)步就是為了讓事情做起更簡(jiǎn)單,如果更復(fù)雜了,是不是有悖我們的初衷呢,所以,大愛(ài).net.么么噠!

我們二話不說(shuō),運(yùn)行下看看

完美運(yùn)行,而且還是響應(yīng)式的網(wǎng)頁(yè),此刻應(yīng)有掌聲(啪啪啪)

至于項(xiàng)目結(jié)構(gòu)中有很多配置文件是我們沒(méi)見(jiàn)過(guò)的,這里呢很慚愧,我剛接觸,還是不是很清楚,所以,我就不瞎說(shuō)了,下面我們繼續(xù)創(chuàng)建EF-DBFIRST

首先,我們先創(chuàng)建數(shù)據(jù)庫(kù),我這里用SqlServer數(shù)據(jù)庫(kù),我只能在另一臺(tái)機(jī)器創(chuàng)建了。

這是我的數(shù)據(jù)庫(kù),兩個(gè)表作為例子,一個(gè)User代表用戶(hù),一個(gè)Post,表示用戶(hù)的帖子。好了下面我們回到vs上,繼續(xù)創(chuàng)建我們的EF吧!首先先創(chuàng)建一個(gè)EF文件夾,我們創(chuàng)建的EF就會(huì)在這里生成。下面才是干貨

通過(guò)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)的版本,然后就添加吧!過(guò)程中會(huì)彈出一些詢(xún)問(wèn)窗口,接受就好了,反正不接受,你就不能用!

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

在圖中所示地方添加紅框子里的這句話,方便你們復(fù)制,我在這里也貼一下。

<DotNetCliToolReference?Include="Microsoft.EntityFrameworkCore.Tools.DotNet"?Version="2.0.0" />

保存好了嗎?我們繼續(xù)右擊項(xiàng)目打開(kāi)終端,Tools中的Open in Terminal,在彈出的終端中輸入dotnet ef試試。如果是下圖,恭喜你,成功了一半了!

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

如果提示你

Version for package `Microsoft.EntityFrameworkCore.Tools.DotNet` could not be resolved.

這句話,也不用擔(dān)心,我也解決了,我在這個(gè)網(wǎng)頁(yè)中找到的答案

https://stackoverflow.com/questions/43375734/version-for-package-microsoft-entityframeworkcore-tools-dotnet-could-not-be-re

有時(shí)間你可以看看。

人家說(shuō),用了這個(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ù)庫(kù)ip是你自己的,名字也是你自己的,密碼也是,最后有個(gè)-c參數(shù)表示生成的EF名字,-o參數(shù)是創(chuàng)建在哪個(gè)目錄下,還記得我們創(chuàng)建了EF文件夾嗎?這里用到了,好了我們?cè)囋嚢?!這個(gè)過(guò)程我們需要等一小會(huì),如果沒(méi)有提示任何問(wèn)題,那么我們就成功了80%,歐耶!?。?/p>

這是創(chuàng)建完EF文件夾下的文件,好了,我們可以寫(xiě)點(diǎn)小程序運(yùn)行下了!

在Controllers文件夾中創(chuàng)建一個(gè)TestControllers.cs控制器文件

這是Index中的代碼

在Views中創(chuàng)建Test文件夾,再創(chuàng)建index.cshtml視圖文件

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

這就是效果!

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • .net Core Migration 步驟 參考代碼地址:https://github.com/BBMMRunL...
    bbmm閱讀 1,316評(píng)論 0 1
  • Contoso 大學(xué)示例 Web 應(yīng)用程序演示如何使用實(shí)體框架(EF)Core 2.0 和 Visual Stud...
    程序員長(zhǎng)春閱讀 3,096評(píng)論 0 1
  • 《圖解 HTTP》 讀書(shū)筆記 HTTP 在哪里 網(wǎng)絡(luò)設(shè)備之間,包括計(jì)算機(jī)與網(wǎng)絡(luò)設(shè)備之間要互相通信,那么雙方必須要基...
    要上班的斌哥閱讀 1,112評(píng)論 0 17
  • 在命令行配置參數(shù) 使用jar包啟動(dòng)的時(shí)候,參數(shù)必須以 -- 開(kāi)頭參數(shù)放在結(jié)尾,或者使用-D開(kāi)頭,參數(shù)放在開(kāi)始才符合...
    tenlee閱讀 1,834評(píng)論 0 0
  • 太過(guò)自我了,不好。沒(méi)有了自我,也不好。如果說(shuō)前者是屬于個(gè)性,那么后者應(yīng)該是屬于秉性。而且個(gè)性本就應(yīng)該是屬于秉性的范...
    白樺i閱讀 223評(píng)論 0 0

友情鏈接更多精彩內(nèi)容