2012-04-14 10 views
0

Ich entwickle eine WPF-Anwendung, die MS SQL2008-Datenbank remote verbindet. Die App kommuniziert mit der Datenbank über Linq-to-SQL. ziemlich praktisch.Linq-to-SQL (dbml) mit lokalem Datenbankcache (C# + VS2010)

Aufgrund des langsamen Datenbankservers versuche ich jedoch, das lokale Datenbankcaching zu verwenden.

"VS2010> Element hinzufügen> Lokale Datenbank-Cache" Assistent könnte eine Lösung sein, aber es nutzt DataSet und SQL Compact (*. Sdf).

Ich fand Linq-To-SQL-Klassen generieren kann nicht von der SQL Compact Edition! (wenn ich Tabellen ziehen, erscheinen Fehler auf und sagen: ‚nicht unterstützte Datenanbieter‘)

So es eine Lösung Linq-to-SQL mit lokalen Datenbank-Cache zu benutzen?

oder gibt es eine Datenbank Synchronisierungsmethode mit Linq-to-SQL gespielt?

+0

http://pietschsoft.com/post/2009/01/Using-LINQ-to-SQL-with-SQL-Server-Compact-Edition.aspx oder http://stackoverflow.com/questions/9226180/ linq2sql-mit-ms-sql-server-com pact-3-5-sp2-badimageformatexception kann helfen - SqlMetal ist Teil der Lösung – NSGaga

+0

Sie sollten besser überprüfen, warum der Datenbankserver so langsam ist. Vielleicht haben Sie eine Linq2sql n + 1 Abfragen Problem? Hast du den Sql profiliert? – Pleun

+0

@Pleun: Es verbindet * Remote *, so könnte es eine Reihe von Dingen sein. Ein Problem mit der Datenbank könnte eine Netzwerklatenz oder eine Vielzahl anderer Probleme sein. – caesay

Antwort

1

Wenn Sie immer noch die sql compact gehen möchten, ist Lightspeed ein linq-to-sql-Provider, der eine Vielzahl von Datenquellen unterstützt. Es beinhaltet mssql compact.

http://www.mindscapehq.com/products/lightspeed

Die kostenlose Version ist für die meisten Projekte ausreichend, mit einer 8-Modell/Klassengrenze.

Ich habe es als eine LINQ-Anbieter für MySql und Sql Compact vor und es war großartig.

Sie können alles sehen, es unterstützt und wie sie im Vergleich zu anderen bestehenden Systemen wie es hier:

http://www.mindscapehq.com/products/lightspeed/comparing-lightspeed

+0

Ich habe als Antwort markiert, dass es für meine Lösung geeignet ist. Vielen Dank – Youngjae

0

der lokalen Datenbank Cache-Assistent unterstützt nur SQL Ce auf der Client-Seite. Wenn Sie SQL Express/SQL Server auf der Clientseite haben, können Sie Sync Framework weiterhin verwenden.

siehe folgende Proben/tutorials Sync Framework:

Synchronizing SQL Server and SQL Express

Database Sync:SQL Server and SQL Express 2-Tier

macht nichts, wenn es erwähnt SQLExpress, die SQLSyncProvider im Code verwiesen sollte gegen SQL Express, SQL Server arbeiten, und SQL Zu