Entity Framework 4 i SQL Compact 4: Jak wygenerować bazę danych?
Rozwijam aplikację z Entity Framework 4 i SQL Compact 4, używając pierwszego podejścia modelowego. Stworzyłem EDM, a teraz chcę wygenerować bazę danych SQL Compact 4.0, która będzie działać jako magazyn danych dla modelu. Wywołuję kreator Generuj bazę danych i klikam przycisk nowe połączenie , aby utworzyć połączenie dla wygenerowanego pliku. Pojawi się okno dialogowe Wybierz źródło danych , ale SQL Compact 4.0 nie jest wymieniony na liście dostępnych danych źródła:
Uruchamiam VS 2010 SP1 (beta) i zainstalowałem narzędzia VS 2010 dla SQL Compact 4.0. Mogę utworzyć połączenie danych SQL Compact 4.0 z Eksploratora serwera. Tylko w Kreatorze Generuj bazę danych opcja 4.0 nie pojawia się. BTW, moja instalacja SQL Compact 4.0 zawiera System.Data.SqlServerCe.Entity.dll
. Więc powinienem mieć Komponenty SQL Compact, których potrzebuję.
7 answers
Jako obejście używam Kreatora generowania bazy danych do wygenerowania skryptu SQL Compact 3.5, który uruchamiam przeciwko pustej bazie danych SQL Compact 4.0 utworzonej w Eksploratorze rozwiązań VS 2010. Oto kroki do wykonania tego zadania:
Krok 1: Uruchom kreator Generuj bazę danych . Monituje o utworzenie pliku na pierwszej stronie, więc niech utworzy plik SQL Compact 3.5. Ten plik jest atrapą, więc nie ma znaczenia, jak się nazwiesz to.
Krok 2: Ukończ kreator, aby utworzyć skrypt DDL, który skonfiguruje nową bazę danych.
Krok 3: Usuń plik atrapy utworzony w Kroku 1.
Krok 4: Użyj VS 2010 Server Explorer, aby utworzyć rzeczywisty plik SQL Compact 4.0, który będzie używany w projekcie.
Krok 5: Kreator generowania bazy danych umieszcza dwa odniesienia do SQL Compact "3.5" w pliku EDMX; te odniesienia należy zmienić na "4.0". Otwórz plik EDMX w edytorze XML VS 2010 (kliknij prawym przyciskiem myszy i wybierz "Otwórz za pomocą", aby przejść do edytora XML). Linia 7 powinna zawierać odniesienia "3.5". Zmień je na " 4.0 " i zapisz plik.
Krok 6: Otwórz wygenerowany EDMX.Plik skryptu SQLCE W VS 2010. VS wskaże (za pomocą banera na bottonie panelu pracy), że skrypt jest odłączony. Kliknij prawym przyciskiem myszy białą spację nad banerem i wybierz Connection > Connect w menu kontekstowym, które się pojawi. Spowoduje to wyświetlenie okna dialogowego połączenia-użyj go do podłączenia skryptu do bazy danych SQL Compact 4.0 utworzonej w kroku 4.
Krok 7: Ponownie kliknij prawym przyciskiem myszy w skrypt white-space i wybierz Execute SQL z menu kontekstowego. Skrypt zostanie uruchomiony, a w okienku pod skryptem pojawi się zwykły komunikat o wynikach. Zakładając pomyślne wykonanie, baza danych jest następnie skonfigurowana tak, aby pasowała do modelu danych jednostki.
Krok 8: musimy również zapewnić aplikacja.config / web.config nie wskazuje na atrapy pliku. Jeśli jest to zmień go na rzeczywisty plik CE 4.0 utworzony w kroku 4 powyżej. W przeciwnym razie mamy problem z regeneracją skryptu podczas dokonywania zmian w modelu. W pliku konfiguracyjnym Zmień również 3.5 NA 4.0.
W tym momencie powinieneś być w stanie korzystać z Entity Framework 4 do pracy z bazą danych.
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
2011-06-25 06:25:13
Aby odpowiedzieć na poniższe komentarze i odnieść się do nich zgodnie z: http://blogs.msdn.com/b/sqlservercompact/archive/2011/01/12/microsoft-sql-server-compact-4-0-is-available-for-download.aspx
Ci czarodzieje nie działają.
Projektanci w projektach VB lub C# Windows w Visual Studio 2010 SP1 Beta: poniższe kreatory nie działają z Compact 4.0 w systemie projektów Windows. Programiści mogą ręcznie dodać odniesienie do ADO.NET dostawca dla Compact 4.0 (System.Data.SqlServerCe) do tworzenia programów dla Compact 4.0 w projektach Windows:
- Kreator konfiguracji źródła danych, który służy do konfigurowania zestawów danych.
- Kreator konfiguracji danych Configure, który służy do konfigurowania synchronizacji danych i schematu z serwerem SQL przy użyciu Sync FX.
- Kreator modelu danych encji, który służy do generowania encji ze zwartej bazy danych.
Oto zaakceptowana praca dla tych problemy. http://erikej.blogspot.com/2010/11/using-entity-framework-with-sql-server.html
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
2011-03-06 00:41:10
Jak rozumiem obecna wersja VS 2010 nie ma wsparcia dla SQL CE 4.0. Powinno być zawarte w VS 2010 SP1 (obecnie w wersji Beta). Sprawdź ten wpis na blogu który opisuje również użycie modelu EF z SQL CE 4.0 W SP1.
Edit:
Znalazłem to obejście .
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
2011-03-06 09:55:11
Możesz użyć IDatabaseInitializer i utworzyć bazę danych w kodzie za pomocą
if (File.Exists("Test.sdf"))
File.Delete("Test.sdf");
string connStr = "Data Source = Test.sdf; Password = <password>";
SqlCeEngine engine = new SqlCeEngine(connStr);
engine.CreateDatabase();
engine.Dispose();
SqlCeConnection conn = null;
try {
conn = new SqlCeConnection(connStr);
conn.Open();
SqlCeCommand cmd = conn.CreateCommand();
cmd.CommandText = "CREATE TABLE myTable (col1 int, col2 ntext)";
cmd.ExecuteNonQuery();
catch {
finally {
conn.Close();
Http://msdn.microsoft.com/en-us/library/system.data.sqlserverce.sqlceengine(v=vs. 80).aspx
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
2011-12-19 18:51:36
Jeszcze raz, użyj Narzędzia bazy danych WebMatrix.
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
2011-03-05 23:20:26
Mogę uruchomić Kreator generowania bazy danych bez żadnego problemu z mojego Chinook.Data project, upewnij się, że masz odpowiedni ciąg połączenia w aplikacji.config. http://erikej.blogspot.com/2010/11/using-entity-framework-with-sql-server.html
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="ChinookEntities" connectionString="metadata=res://*/ChinookModel.csdl|res://*/ChinookModel.ssdl|res://*/ChinookModel.msl;provider=System.Data.SqlServerCe.4.0;provider connection string="Data Source=C:\projects\Chinook\Chinook40.sdf"" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
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
2011-03-06 17:35:53
Prawdopodobnie potrzebujesz SQL Server Compact 4 tools również zainstalowany, jeśli nie zainstalowano go bezpośrednio, gdy Visual Studio 2010 SP1 został zainstalowany, możesz go zainstalować. To mi pomogło, gdy miałem 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
2012-09-12 23:06:47