Çevrimiçi ve Çevrimdışı modda çalışabilen bir Windows C# uygulaması geliştiriyorum.
Çevrimiçi moddayken, bir SQL Server'a bağlanır. Çevrimdışı modda yerel bir DB'ye bağlanır.MS Sync Framework ve SQL Server Sıkıştırması
2 veri tabanını isteğe göre senkronize etmek için Microsoft Sync Framework 2.1 kullanıyorum. Şimdiye kadar yerel veritabanı olarak bir SQL Server'ın LocalDB örneğini kullandım. Ancak, uygulamamın yükleme işlemi sırasında sistemi otomatik olarak kurmak bir acıdır. Bu yüzden dağıtımı çok kolay olan SQL Server Compact 3.5 veya 4.0'ı kullanmam gerekiyor (tek bir dosyada geliyor).
Ama bile Kompakt DB hazırlık kodu derlemek alınamıyor: I (Ce
sınıflar olmadan) önce kullanılan
DbSyncScopeDescription scopeDesc = new DbSyncScopeDescription("MyScope");
SqlCeConnection clientConn = new SqlCeConnection(OfflineConnectionString);
var clientProvision = new SqlCeSyncScopeProvisioning(clientConn, scopeDesc);
clientProvision.Apply();
ama SqlCeSyncScopeProvisioning
çözülemeyen.
Burada bir şey çok yanlıştır.
CompactDB'mi yerel veritabanım olarak dağıtmak için nasıl eşitleyebilirim?
'a kolayca taşımanız gerekir LocalDB veritabanı dosyalarını dağıtmayı denediniz mi? Belirli bir LocalDB dosyasına bağlayabilirsiniz. Örneğin. 'connectionString =" Veri Kaynağı = (LocalDb) \ v12.0; AttachDbFilename = C: \ MyDatabase.mdf; İlk Katalog = MyDatabase; Entegre Güvenlik = Doğru "'. Uygulamalarımı istemci bilgisayarlara dağıtmadım, bu yüzden yükleme * SqlLocalDB * sorunlu ya da değil, bilmiyorum, ama bir şans verebilir. – Gabrielius
SqlLocalDB'yi yüklemek çok kolay değil. Özellikle eski bir varolan örneği kaldırmak ve yenisini yüklemek zorunda kaldığımda çalışır hale getirmek için. Ancak, Kompakt yaklaşım başarısız olursa, bunun üzerinde çalışmaya devam etmeliyim. Teşekkürler. –
Neden eski olanı kaldıralım? Bu senin mi? İstediğiniz adla yeni bir örnek ekleyebilirsiniz. Sanırım LocalDB'yi savunuyorum çünkü CE çok eski ve sonunda ölecek. – Gabrielius