我需要哪一个?EntityFramework.Core 或 EntityFramewor.MicrosoftSqlSer



我一直在试图找出EntityFramework.CoreEntityFramework.MicrosoftSqlServer之间的差异,以确定我需要哪一个软件包。直到今天我才注意到,在我的Visual Studio解决方案中,它有一个WebUI项目和DataAccess项目,WebUI只包含EntityFramework.MicrosoftSqlServer,而DataAccess项目只包括EntityFramework.Core

两者之间的真正区别是什么,我什么时候应该包括一个与另一个和两者?我在整个解决方案中使用 ASP.Net 5 核。

>EntityFramework.MicrosoftSqlServer取决于EntityFramework.Relational,而又取决于EntityFramework.Core。还原项目是关于创建依赖项关系图并将所有必需的包(无论它们是否在 project.json 中指定)安装到项目中。在您的情况下,您只指定了 EntityFramework.MicrosoftSqlServer,但在还原期间,其他依赖项(包括 EntityFramework.Core)将被拉取,因此无需显式指定 EntityFramework.Core。

如果你在dnx上,你可以使用dnu list查看依赖关系图(你可以使用--details标志查看更多详细信息),或者,如果你勇敢,你可以看看project.lock.json文件。

两者都是必需的,但如果您添加EntityFramework.MicrosoftSqlServer,那么将为您添加EntityFramework.Core,因为它是EntityFramework.MicrosoftSqlServer所必需的。

EntityFramework.Core包含EntityFramework的所有核心代码,如DbContextDbSet和任何IQueryable extensions以及许多其他内部代码。

EntityFramework.MicrosoftSqlServer包含特定于数据库的 SQL 语法和 SQL Server 的连接代码。还有其他可用的数据库提供程序。

可用的数据库提供程序:

  • EntityFramework.InMemory(这适用于编写不需要数据库的测试)
  • EntityFramework.Sqlite
  • EntityFramework.MicrosoftSqlServer

最新更新