2017-03-03 101 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