2017-03-03 51 views
5

所有教程同意project.json應包括:用途的軟件包「Microsoft.EntityFrameworkCore.Design」

"Microsoft.EntityFrameworkCore.Design": { "type":"build", "version":"1.0.0-preview2-final" } 

我從來沒有包括它,從未有過的一個問題。

我只包括

"Microsoft.EntityFrameworkCore" 
"Microsoft.EntityFrameworkCore.Sqlite" (or Sqlserver) 
"Microsoft.EntityFrameworkCore.Tools" 

這是什麼包嗎?爲什麼我可以排除它沒有問題?


UPDATE:見接受的答案評論找出其中的場景要導入的包。

回答

8

Microsoft.EntityFrameworkCore.Design包含實體框架核心的所有設計時邏輯。這是所有各種工具(PMC cmdlet,如Add-Migration,dotnet ef & ef.exe)調用的代碼。

如果您不使用遷移或逆向工程,則不需要它。

而當你確實需要它時,我們鼓勵PrivateAssets="All"所以它不會發布到服務器,你幾乎肯定不需要它。

+0

我沒有使用PMC,但我使用CLI工具('dotnet ef foo bar')進行遷移。並沒有問題。奇怪的!這可能是因爲我包含'Microsoft.EntityFrameworkCore.Tools'? – grokky

+1

是的。 EFCore.Tools將爲您提供EFCore.Design。 – bricelam

+0

謝謝,這終於有意義了!最後一件事:'EFCore.Design'和'EFCore.Tools'有什麼區別?教程/例子從來沒有解釋過,他們只是說要導入兩者。我想要的只是CLI工具。 – grokky