2013-10-18 14 views
9

Nie mogę uzyskać instalacji Entity Framework 6.0.1 na kilku projektach F #, które mam. To jest komunikat o błędzie, który otrzymuję:Uzyskiwanie EF 6 z NuGet do instalacji na projektach F #

Wykonywanie pliku skryptu "C: \ źródło \ tablica prywatna \ PayboardWeb \ packages \ EntityFramework.6.0.1 \ tools \ install.ps1". Wywołanie wyjątku "SetData" z argumentami "2": "Wpisz" Microsoft.VisualStudio.FSharp.ProjectSystem.Automation.OAProject "w zespole" FSharp.ProjectSystem.Base, wersja = 12.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a "nie jest oznaczony jako możliwy do serializacji." W C: \ source \ payboard \ PayboardWeb \ packages \ EntityFramework.6.0.1 \ tools \ EntityFramework.psm1: 633 char: 5 + $ domain.SetData ('project', $ Project) + ~~~~~ Brak informacji: (:) [], MethodInvocationException + FullyQualifiedErrorId: SerializationException

System.NullReferenceException: Odwołanie do obiektu nie jest ustawione na wystąpienie obiektu. na System.Data.Entity.ConnectionFactoryConfig.InitializeEntityFrameworkCommand.Execute() w System.Data.Entity.Migrations.MigrationsDomainCommand.Execute (polecenia Action)

Wydaje się, że jest otwarty na to bug na EF6 fora (https://entityframework.codeplex.com/workitem/891), ale nie dostałem żadnej miłości, o ile mogę powiedzieć.

EF6 instaluje się dobrze na projektach innych niż F #.

Wszelkie sugerowane rozwiązania alternatywne?

+0

Myślę, że masz dużo szczęścia, dopóki MS nie zmieni typu "Microsoft.VisualStudio.FSharp.ProjectSystem.Automation.OAProject" na serializowalny. Zawsze możesz przesłać ten problem na stronie użytkownika głosowego dla F #, aby zobaczyć, czy to więcej miłości. Wątpię, by zespół EF zdołał coś poprawić w języku bazowym. –

+1

Jeśli przeczytasz w komentarzach następnego wpisu z zespołu EF, ktoś z zespołu nieco odpowie na twoje pytanie, kiedy EF będzie obsługiwać F #. Nie jestem pewien, czy to pomaga, ale jest to przynajmniej oficjalne potwierdzenie. http://blogs.msdn.com/b/adonet/archive/2013/10/31/ef6-performance-issues.aspx –

+0

Przeszukałem link @ ScottWylie i znalazłem [element pracy 891] (https: // entityframework. codeplex.com/workitem/891). Wygląda na to, że F # może działać w następnej wersji EF. –

Odpowiedz

5

To się odblokowuje w EF6.1. Here to praca.

Należy zauważyć, że problem tutaj nie jest EF, ale jak pakiet jest dodawany do projektu. To sprawia, że ​​myślę, że dopóki EF6.1 nie zostanie zwolniony, prawdopodobnie można obejść ten problem, pobierając pakiet rozpakowując go i dodając odwołania do zespołów EF6 ręcznie do projektu. Wtedy będziesz musiał odpowiednio zaktualizować swoją konfigurację. (Możesz także utworzyć projekt temp C# dodać pakiet NuGet EF6, który da ci biblioteki DLL EntityFramework i EntityFramework.SqlServer, które możesz skopiować do swojego projektu F #, a także plik konfiguracyjny, z którego możesz skopiować, co będzie łatwiejsze niż przyjście z właściwa konfiguracja na własną rękę)

+0

Próbowałem utworzyć projekt C#, który wykonałby wszystkie operacje na bazie danych, ale kiedy próbowałem wysłać zapytanie do bazy danych, EF nie mógł osiągnąć serwera MySQL, ponieważ plik web.config nie został poprawnie skonfigurowany, mimo że app.config w tym projekcie C# było w porządku. Oto, co spróbuję: przenieść wszystkie odpowiednie konfiguracje EF z app.config na web.config, ale twoje rozwiązanie wydaje się warte wypróbowania. Oto twoje 50 punktów haha. –

+1

Pakiet NuGet domyślnie instaluje dostawcę SqlServer i konfiguruje aplikację dla SqlServer.Jeśli chcesz użyć MySql, musisz zainstalować dostawcę MySql i zmienić rejestrację dostawcy w pliku konfiguracyjnym. – Pawel

+0

Tak, zrobiłem to, ale ponieważ plik konfiguracyjny był w innym projekcie, EF nie mógł go osiągnąć. –

Powiązane problemy