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

Если у вас есть даты в таблице и вы просто хотите выбрать между двумя датами, вы можете использовать

select * from yourTable where yourDate between date1 and date2

. Если вы хотите создать даты из ничего, вы можете сделать это с помощью цикла или вы можете заполнить временную таблицу датами и затем выбрать из нее.

21
задан geethu 13 January 2015 в 12:33
поделиться

8 ответов

1111 Надеюсь, я не опоздала. Я использую 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>

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

13
ответ дан Brendan Vogt 13 January 2015 в 12:33
поделиться

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

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

Type _Hack = typeof(System.Data.Entity.SqlServer.SqlProviderServices)
38
ответ дан Fabrice 13 January 2015 в 12:33
поделиться

Проблема в ссылке «EntityFramework.SqlServer».

В моем проекте, когда я добавил Entity Framework 6.0.1 с использованием NuGet на уровне доступа к данным, я получил ту же ошибку на стороне клиента, поскольку на стороне клиента такой ссылки нет.

Итак, я решил проблему, добавив эту ссылку и на стороне клиента.

10
ответ дан Eren 13 January 2015 в 12:33
поделиться

Я использую EF 4 и EF 6 в двух разных проектах в одном решении.

После использования NuGet для EF 6.0 все ссылки на EF 4 были удалены в моем тестовом проекте. Мне пришлось снова удалить EF6 из проекта и добавить ссылки на System.Data.Entity для EF4.

Для доступа к данным через EF6 в тестовом проекте мне пришлось вручную ссылаться на EntityFramework.SqlServer.dll (4.5) и использовать рекомендацию по взлому (см. Выше).

Нет необходимости делать какие-либо изменения в app.config моего тестового проекта.

нет

 <section name="entityFramework" ...

и нет

<entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> ...
1
ответ дан Karl 13 January 2015 в 12:33
поделиться

@ LeLong37

У меня была точно такая же ошибка, как и у вас: «... Не найден поставщик Entity Framework для поставщика ADO.NET System.Data.SqlServerCe.4.0 ...»

Я решил эту проблему, добавив ссылку на «EntityFramework.SqlServerCompact» из каталога «packages \ EntityFramework.SqlServerCompact.6.0.0-rc1 \ lib \ net40»

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

0
ответ дан Tobias Koller 13 January 2015 в 12:33
поделиться

Я добавил скринкаст на Youtube , описывающий это и решение за 6 минут. Я сделал это, потому что решение, предоставленное Fabrice, не работает, когда вы работаете с Team Build, которая сталкивается с той же проблемой.

0
ответ дан Alexander Schmidt 13 January 2015 в 12:33
поделиться

Я решил проблему, скопировав два файла

EntityFramework.SqlServer.dll
EntityFramework.SqlServer.xml

в /bin.

-1
ответ дан Tsyvarev 13 January 2015 в 12:33
поделиться

Если у вас возникли проблемы с новым сайтом MVC из шаблона: 1) Удалите Microsoft.ASPNet.Identity.EntityFramework (вам будет задан вопрос, хотите ли вы удалить Entity Framework - продолжайте и сделайте это.) 2) Установите Entity Framework 3) Переустановите Microsoft.ASPNET.Identity.EntityFramework

Должно работать сейчас.

0
ответ дан MarkWalls 13 January 2015 в 12:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: