Не удается найти System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer

c# entity-framework-6

Вопрос

Я создаю DbContext из SqlConnection. Когда я его использую, я получаю следующую ошибку:

Поставщик Entity Framework типа 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer, Version = 6.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089' для поставщика System.ata.SqlClient 'ADO.NET не может быть загружен.

Я использую 6.0.0-alpha2-11210.

Я нашел это странным, так как у меня есть ссылка на Entity.SqlServer и что мне удалось «исправить его», поставив следующую строку кода перед запросом:

var patch_only = System.Data.Entity.SqlServer.SqlProviderServices.Instance;

Это ошибка альфа-версии?

Принятый ответ

Надеюсь, я не опаздываю. Я использую ASP.NET MVC 4 и Entity Framework 6 alpha 3 и столкнулся с аналогичной проблемой.

У меня есть несколько проектов в моем решении. 2 основных проекта:

MyProject.Infrastructure.EntityFramework
MyProject.Web

В первом проекте я бы установил все свои репозитории, DbContext и т. Д. В этом проекте у меня есть 2 ссылки:

EntityFramework
EntityFramework.SqlServer

Второй проект - мой сайт. Он использует репозитории в первом проекте для возврата моих данных. Например:

private readonly IMyRepository myRepository;

public MyController(IMyRepository myRepository)
{
     this.myRepository = myRepository;
}

public ActionResult Details(int id)
{
     MyObject myObject = myRepository.FindById(id);

     return View();
}

Здесь я столкнулся со своими проблемами, вызвав FindById .

Все, что я сделал, это добавить следующую ссылку на мой сайт:

EntityFramework.SqlServer

В моем web.config:

<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
     <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>

И под закрывающим тегом system.webServer :

<entityFramework>
     <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
          <parameters>
               <parameter value="v11.0" />
          </parameters>
     </defaultConnectionFactory>
</entityFramework>

Я надеюсь, это поможет.


Популярные ответы

Вы создали ссылку на EntityFramework.SqlServer.dll. Это гарантирует, что эта сборка будет скопирована в папку bin проектов, используя сборку доступа к данным.

Вы можете сделать то же самое, добавив что-то вроде следующего в сборку доступа к данным:

Type _Hack = typeof(System.Data.Entity.SqlServer.SqlProviderServices)


Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему