Nie znaleziono dostawcy RAM podmiotowych dla ADO.NET dostawca z systemem niezmiennej nazwy.Data.SqlClient"
Po pobraniu EF6 przez nuget i próbie uruchomienia mojego projektu zwraca następujący błąd:
No Entity Framework provider found for the ADO.NET dostawca z systemem niezmiennej nazwy.Data.SqlClient". Upewnij się, że dostawca jest zarejestrowany w sekcji "entityFramework" w pliku konfiguracyjnym aplikacji. Zobacz http://go.microsoft.com/fwlink/?LinkId=260882 aby uzyskać więcej informacji.
30 answers
Właśnie miałem ten sam problem i wygląda na to, że EntityFramework chociaż zainstalowany z NuGet Package Manager nie był poprawnie zainstalowany w projekcie.
Udało mi się to naprawić, uruchamiając następujące polecenie na konsoli Package Manager Console :
PM> Install-Package EntityFramework
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-07 11:47:25
Dodałeś EF do projektu biblioteki klas. Musisz również dodać go do projektu, który się do niego odwołuje (aplikacja konsoli, strona internetowa lub cokolwiek innego).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-07 13:26:41
Nie musisz instalować Entity Framework w swojej aplikacji konsolowej, wystarczy dodać odniesienie do programu Entity Framework assembly.SqlServer.dll. Możesz skopiować ten zestaw z projektu biblioteki klas, który używa struktury encji do folderu LIB i dodać do niego odniesienie.
W podsumowaniu:
- Class Library application:
- Install Entity Framework
- napisz swój kod warstwy danych
- app.plik config posiada całą konfigurację związaną z Encja Framework z wyjątkiem łańcucha połączenia.
- Utwórz aplikację konsolową, internetową lub desktopową:
- Dodaj odniesienie do pierwszego projektu.
- Dodaj odniesienie do EntityFramework.SqlServer.dll.
- app.config / web.config posiada łańcuch połączeń (Należy pamiętać, że nazwa wpisu konfiguracyjnego musi być taka sama jak nazwa klasy DbContext.
Mam nadzieję, że to pomoże.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-23 20:16:58
Możesz również zobaczyć tę wiadomość, jeśli zapomnisz dołączyć "EntityFramework.SqlServer.dll".
Wygląda na nowo dodany plik w EF6. Początkowo nie włączyłem go do mojego modułu scalania i napotkałem problem wymieniony tutaj.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-24 19:58:50
Zamiast dodawać EntityFramework.SQLServer to host project możesz zapewnić statyczne odniesienie do niego z projektu modelu / jednostki, takiego jak ten
static MyContext()
{
var type = typeof(System.Data.Entity.SqlServer.SqlProviderServices);
if(type == null)
throw new Exception("Do not remove, ensures static reference to System.Data.Entity.SqlServer");
}
Spowoduje to, że proces budowania będzie zawierał assembly z projektem hosta.
Więcej informacji na moim blogu http://andersmalmgren.com/2014/08/20/implicit-dependencies-and-copy-local-fails-to-copy/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-05 22:21:01
Podczas instalacji Entity Framework 6 przez Nuget
. / Align = "left" / SQLServer czasami brakuje innego pliku wykonywalnego. Wystarczy dodać pakiet Nuget
do tego projektu.
Czasami powyższe nie działa dla projektu testowego
Aby rozwiązać ten problem w projekcie testowym, umieść tę metodę wewnątrz projektu testowego:
public void FixEfProviderServicesProblem()
{
var instance = System.Data.Entity.SqlServer.SqlProviderServices.Instance;
}
Ta metoda nigdy nie została wywołana, ale jak moje obserwacje, kompilator usunie wszystkie "niepotrzebne" złoża i bez użycia EntityFramework.SqlServer
rzeczy test się nie powiódł.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-18 20:16:18
Dodaj tę funkcję
private void FixEfProviderServicesProblem()
Do klasy kontekstowej bazy danych w klasie bibliotecznej i brakującej biblioteki DLL EntityFramework.SqlServer.dll zostanie skopiowany do odpowiednich miejsc.
namespace a.b.c
{
using System.Data.Entity;
public partial class WorkflowDBContext : DbContext
{
public WorkflowDBContext()
: base("name=WorkflowDBConnStr")
{
}
public virtual DbSet<WorkflowDefinition> WorkflowDefinitions { get; set; }
public virtual DbSet<WorkflowInstance> WorkflowInstances { get; set; }
public virtual DbSet<EngineAlert> EngineAlerts { get; set; }
public virtual DbSet<AsyncWaitItem> AsyncWaitItems { get; set; }
public virtual DbSet<TaskItem> TaskItems { get; set; }
public virtual DbSet<TaskItemLink> TaskItemLinks { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
}
private void FixEfProviderServicesProblem()
{
// The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer'
// for the 'System.Data.SqlClient' ADO.NET provider could not be loaded.
// Make sure the provider assembly is available to the running application.
// See http://go.microsoft.com/fwlink/?LinkId=260882 for more information.
var instance = System.Data.Entity.SqlServer.SqlProviderServices.Instance;
}
}
}
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-31 18:46:29
Żadne z nich nie zadziałało. Znalazłem rozwiązanie w innym pytaniu stoskoverflow . Dodam go tutaj dla łatwego odniesienia:
Musisz zrobić referencję, więc zostanie ona skopiowana w aplikacji den / align = "left" / Ponieważ później będzie się odwoływać w runtime. Więc nie trzeba skopiować pliki.
private volatile Type _dependency;
public MyClass()
{
_dependency = typeof(System.Data.Entity.SqlServer.SqlProviderServices);
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:18:27
Otrzymałem ten sam błąd podczas korzystania z Entity Framework 6 z SQL Server Compact 4.0. Artykuł na temat MSDN dla Entity Framework Providers dla EF6 był pomocny. Uruchomienie odpowiednich poleceń dostawcy jako pakietów nuget w konsoli Menedżera pakietów może rozwiązać problem, ponieważ również pakiety NuGet automatycznie dodają rejestracje do pliku konfiguracyjnego. Pobiegłem PM> Install-Package EntityFramework.SqlServerCompact
, aby rozwiązać problem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-10 20:57:29
Napotkał ten problem dzisiaj podczas pracy z zestawem usług internetowych, każdy w różnych projektach i oddzielnym projektem zawierającym testy integracyjne dla niektórych z tych usług.
Używam tej konfiguracji od jakiegoś czasu z EF5, bez konieczności dołączania odniesień do EF z projektu Integration Test.
Teraz, po aktualizacji do EF6, wydaje mi się, że muszę również umieścić odniesienie do EF6 w projekcie testu integracji, mimo że nie jest tam używany (prawie jak wskazywany powyżej przez user3004275).
Wskazania masz ten sam problem:
- wywołania bezpośrednio do EF (łączenie się z DB, pobieranie danych, itp.) działają dobrze, o ile są inicjowane z projektu, który ma odniesienia do EF6.
- wywołania do serwisu za pośrednictwem opublikowanego interfejsu serwisu działają dobrze, tzn. nie ma brakujących odniesień "wewnętrznie" w serwisie.
- rozmowy bezpośrednio do publicznej metody W projekcie usługi, z projektu poza usługą, spowoduje ten błąd, nawet jeśli EF nie jest używany w samym projekcie; tylko wewnętrznie w wywołanym projekcie
Trzeci punkt jest tym, co mnie na chwilę zniechęciło i nadal Nie wiem, dlaczego jest to wymagane. Dodanie ref do EF6 w moim projekcie testu integracyjnego rozwiązało to w każdym razie...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:36
Gdy błąd występuje w projektach testowych, najładniejszym rozwiązaniem jest udekorowanie klasy testowej przez:
[DeploymentItem("EntityFramework.SqlServer.dll")]
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-30 09:46:05
Projekt startowy, który odwołuje się do projektu, w którym jest używany Framework Entity, wymaga następujących dwóch zestawów w folderze bin:
- EntityFramework.dll
- EntityFramework.SqlServer.dll
Dodanie <section>
do <configSections>
.plik konfiguracyjny projektu startowego sprawia, że pierwszy zestaw jest dostępny w tym katalogu bin. Możesz to skopiować z .plik konfiguracyjny projektu Entity Framework:
<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>
Aby zrobić drugi .dll dostępny w folder bin, choć nie jest praktyczny, można wykonać ręczną kopię z folderu bin projektu Entity Framework. Lepszą alternatywą jest dodanie do zdarzeń Post-Build projektu Entity Framework następujących linii, które zautomatyzują proces:
cd $(ProjectDir)
xcopy /y bin\Debug\EntityFramework.SqlServer.dll ..\{PATH_TO_THE_PROJECT_THAT_NEEDS_THE_DLL}\bin\Debug\
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-16 14:12:32
Wpadłem dzisiaj na ten problem. Mam bibliotekę klas repozytorium danych z pakietem NuGet EF63 i konsolową aplikacją do testowania, które mają odniesienie tylko do projektu biblioteki klas. Stworzyłem bardzo proste polecenie post-build, które kopiuje EntityFramework.SqlServer.dll z folderu Bin \ Debug biblioteki klas do folderu Bin\Debug aplikacji konsoli i problem rozwiązany. Nie zapomnij dodać sekcji entityFramework do aplikacji konsolowych .plik konfiguracyjny.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-26 12:40:55
Dodaj poniżej do swojej aplikacji.config.
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-01 18:33:13
Usunięcie BIN-folderu zrobiło to za mnie
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-31 19:18:02
Należy wymusić statyczne odniesienie do ramki EntityFramework.SqlServer.DLL assembly, ale zamiast umieszczać atrapy kodu, możesz to zrobić w piękniejszy sposób:
-
Jeśli masz już DbConfiguration klasa:
public class MyConfiguration : DbConfiguration { public MyConfiguration() { this.SetProviderServices(System.Data.Entity.SqlServer.SqlProviderServices.ProviderInvariantName, System.Data.Entity.SqlServer.SqlProviderServices.Instance); } }
-
Jeśli nie posiadasz klasy DbConfiguration musisz umieścić następujący kod przy starcie aplikacji (przed użyciem EF):
static MyContext() { DbConfiguration.Loaded += (sender, e) => e.ReplaceService<DbProviderServices>((s, k) => System.Data.Entity.SqlServer.SqlProviderServices.Instance); }
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-01 20:59:40
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-12 15:07:45
Właśnie ponownie zainstalowałem Framework Entity używając Nuget. I postępuj zgodnie z instrukcją napisaną na poniższym linku : http://robsneuron.blogspot.in/2013/11/entity-framework-upgrade-to-6.html
Myślę, że problem zostanie rozwiązany.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-04 08:17:10
Rozwiń Swoją Modelkę.plik edmx i otwórz YourModel.Kontekst.Klasa cs pod YourModel.Context.tt.
Dodałem następujący wiersz w sekcji Używanie i błąd został naprawiony dla mnie.
Using Sqlproviderservices = System.Data./ Align = "left" / SqlServer.SqlProviderServices;
Może być konieczne dodanie tej linii do pliku za każdym razem, gdy plik jest automatycznie generowany.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-01 14:38:27
Brakuje tylko odniesienia do EntityFramework.SqlServer.dll. W przypadku projektów EntityFramework wykorzystujących SQL Server, dwa pliki, które musisz odwołać, to EntityFramework.SqlServer.dll i EntityFramework.dll
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-17 08:01:14
Wygląda na to, że nikt wcześniej nie wspomniał o sprawdzaniu systemu.Data.SqlClient jest zainstalowany w systemie i jeśli jest do niego odniesienie.
Rozwiązałem swój problem instalując System.Data.SqlClient i dodanie nowego dostawcy w aplikacji.Config
<provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6"/>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-30 22:30:06
Upewnij się również, że uruchamiasz projekt, który zawiera twój dbcontext (lub odpowiednią aplikację.config). Mój próbował uruchomić projekt strony internetowej, która nie miała wszystkich niezbędnych ustawień konfiguracyjnych.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-28 21:40:13
Próbowałem prawie wszystkich powyższych i nic nie działało.
Dopiero gdy ustawiłem odnośniki bibliotek DLL w domyślnym projekcie EntityFramework
i EntityFramework.SqlServer
Właściwości Copy Local
na True
, zaczęło działać!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-27 12:21:06
Proszę O uwagę, że two dll EntityFramework.dll i EntityFramework.SqlServer.dll są biblioteką warstw DataAccess i nie jest logiczne, aby używać ich w widoku lub innych layer.it rozwiązuje twój problem, ale nie jest to logiczne.
Logicznym sposobem jest usunięcie atrybutu Enitiess i zastąpienie go płynnym API.jest to rozwiązanie rzeczywiste
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-10 15:15:14
Miałem jedną aplikację konsolową i bibliotekę klas. W bibliotece klas utworzyłem model danych encji (kliknij prawym przyciskiem myszy na bibliotekę klas > Dodaj > nowy element > Dane > ADO.NET Entity Data Model 6.0) i umieścić odniesienie wewnątrz aplikacji konsolowej. Więc masz aplikację konsolową, która ma odniesienie do biblioteki klas, a wewnątrz biblioteki klas masz model EF. Miałem ten sam błąd, gdy próbowałem uzyskać kilka rekordów z tabeli.
Rozwiązałem ten problem, podążając za tymi kroki:
- Kliknij prawym przyciskiem myszy rozwiązanie i wybierz opcję 'Zarządzaj pakietami NuGet dla rozwiązania', a pojawi się okno menedżera pakietów NuGet.
- przejdź do opcji "Zarządzaj" w obszarze "zainstalowane pakiety" Wskazówka: struktura encji jest dodawana do biblioteki klas, więc będziesz mieć EntityFramework pod 'Installed packages' i zobaczysz 'Manage' option
- Kliknij opcję 'Manage' i zaznacz, aby zainstalować pakiet do projektu, który ma odniesienie do biblioteki klas, która zawiera model EF (w moim przypadku I ustawia pole wyboru, aby zainstalować pakiet na konsoli aplikacji, która miała odniesienie do biblioteki klas, która miała model EF w środku)
To wszystko, co musiałem zrobić i wszystko działało idealnie.
Mam nadzieję, że pomogło.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-04 18:29:45
Mam ten sam błąd. To dziwne, że dzieje się to tylko wtedy, gdy użyłem mojego dbContext do zapytania do dowolnego z moich modeli lub uzyskać jego listę jak:
var results = _dbContext.MyModel.ToList();
Próbowaliśmy ponownie zainstalować Framework encji, odwoływać się do niego poprawnie, ale bezskutecznie.
Na szczęście próbowaliśmy sprawdzić Nuget pod kątem rozwiązań ALL
, a następnie zaktualizować wszystko lub upewnić się, że everything
jest tą samą wersją, ponieważ zauważyliśmy, że oba projekty mają różne wersje EF w projekcie internetowym. I to działa. Błąd jest zniknął.
Oto zrzut ekranu, jak zarządzać Nuget dla wszystkich rozwiązań:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-07 13:28:03
Wystarczy Skopiować EntityFramework.SqlServer.dll do folderu bin
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-05-03 01:46:26
Miałem związany problem podczas migracji z CE db do SQL Server Na Azure. Zmarnowałem 4 godziny próbując to rozwiązać. Mam nadzieję, że to może uratować komuś podobny los. Dla mnie miałem odniesienie do SqlCE w moich pakietach.plik konfiguracyjny. Usunięcie go rozwiązało cały mój problem i pozwoliło mi korzystać z migracji. Yay Microsoft dla innej technologii z niepotrzebnie skomplikowaną konfiguracją i konfiguracją.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-25 23:37:13
Miałem ten sam problem, po prostu skopiowałem plik konfiguracyjny aplikacji z projektu, który zawierał DBContext do mojego projektu testowego
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-08 14:02:31
Wyrzuciłem identyczny wyjątek. I included
using System.Data;
using System.Data.Entity;
I wszystko wróciło do pracy ..Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-21 13:37:30