Если у вас есть даты в таблице и вы просто хотите выбрать между двумя датами, вы можете использовать
select * from yourTable where yourDate between date1 and date2
. Если вы хотите создать даты из ничего, вы можете сделать это с помощью цикла или вы можете заполнить временную таблицу датами и затем выбрать из нее.
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)
Проблема в ссылке «EntityFramework.SqlServer».
В моем проекте, когда я добавил Entity Framework 6.0.1 с использованием NuGet на уровне доступа к данным, я получил ту же ошибку на стороне клиента, поскольку на стороне клиента такой ссылки нет.
Итак, я решил проблему, добавив эту ссылку и на стороне клиента.
Я использую 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" /> ...
@ LeLong37
У меня была точно такая же ошибка, как и у вас: «... Не найден поставщик Entity Framework для поставщика ADO.NET System.Data.SqlServerCe.4.0 ...»
Я решил эту проблему, добавив ссылку на «EntityFramework.SqlServerCompact» из каталога «packages \ EntityFramework.SqlServerCompact.6.0.0-rc1 \ lib \ net40»
надеюсь, что это поможет
Я добавил скринкаст на Youtube , описывающий это и решение за 6 минут. Я сделал это, потому что решение, предоставленное Fabrice, не работает, когда вы работаете с Team Build, которая сталкивается с той же проблемой.
Я решил проблему, скопировав два файла
EntityFramework.SqlServer.dll
EntityFramework.SqlServer.xml
в /bin
.
Если у вас возникли проблемы с новым сайтом MVC из шаблона: 1) Удалите Microsoft.ASPNet.Identity.EntityFramework (вам будет задан вопрос, хотите ли вы удалить Entity Framework - продолжайте и сделайте это.) 2) Установите Entity Framework 3) Переустановите Microsoft.ASPNET.Identity.EntityFramework
Должно работать сейчас.