Я могу использовать System.Data.Entity без ссылки на него в моем проекте.Как это возможно?
System.Data.Entity - это пространство имен.
EntityFramework.dll содержит много типов, принадлежащих пространству имен System.Data.Entity.EG DbContext.
Класс DbContext
Пространство имен: System.Data.Entity
Сборка: EntityFramework (в EntityFramework.dll)
В .NET Framework есть сборка под названием System.Data.Entity.dll, но EF ее больше не использует.EF изначально был частью самой .NET Framework, но теперь поставляется через NuGet.Старая поддержка более старых версий EF является все еще частью .NET Framework, поскольку более старые приложения, использующие более старые EF, все еще нуждаются в этом.См .:
В предыдущих версиях EF код был разделен между основными библиотеками (в основном, System.Data.Entity.dll), поставляемыми как часть .NET Framework и внеполосными (OOB)библиотеки (в основном EntityFramework.dll) поставляются в пакете NuGet.EF6 берет код из основных библиотек и включает его в библиотеки OOB.Это было необходимо для того, чтобы позволить EF стать открытым исходным кодом и развиваться не так, как .NET Framework.Следствием этого является то, что приложения должны быть перестроены для перемещенных типов.
Обновление до Entity Framework 6