İki veritabanımız var, DEV ve STAGING. Çoğunlukla aynıdırlar. Web.Config'te bir uygulama ayarları etiketinin "mode" ve iki connectiontring girdisi var.LinqToSql dbml bağlantı geçişlerini dinamik olarak değiştir
Mod = DEV ise, ConnectionString 1 kullanmak istiyorum. Aksi takdirde ConnectionString 2'yi kullanın. Bu, uygulamanın bazı bölümlerinde iyi çalışır, ancak dbml bağlantı dizelerini değiştirmiyor gibi görünmüyor. Bir Kamu sınıfında
Public Function GetConnectionString() As String
Dim connectionStringToGet = String.Empty
Select Case GetCurrentApplicationMode()
Case "DEV"
connectionStringToGet = "Dev"
Case "STAG"
connectionStringToGet = "Staging"
Case "PROD"
connectionStringToGet = "Production"
End Select
Return ConfigurationManager.ConnectionStrings(connectionStringToGet).ConnectionString
End Function
Bu, bu eski app saklı procs sayısız için çalışıyor içinde bu işlevi kullanıyorum ama dbml, hep Evreleme bağlantı dizesi kullanmak gibi görünüyor. Ben DBML özelliklerini görüntülediğinizde
, zor Evreleme connectionstring kodlanmış görüyoruz, ama bu
Public Sub New()
MyBase.New(Utilities.GetConnectionString(), mappingSource)
OnCreated
End Sub
Public Sub New(ByVal connection As String)
MyBase.New(connection, mappingSource)
OnCreated
End Sub
Public Sub New(ByVal connection As System.Data.IDbConnection)
MyBase.New(connection, mappingSource)
OnCreated
End Sub
Public Sub New(ByVal connection As String, ByVal mappingSource As System.Data.Linq.Mapping.MappingSource)
MyBase.New(connection, mappingSource)
OnCreated
End Sub
Public Sub New(ByVal connection As System.Data.IDbConnection, ByVal mappingSource As System.Data.Linq.Mapping.MappingSource)
MyBase.New(connection, mappingSource)
OnCreated
End Sub
gibi DBML için designer.vb değiştirerek bu ı iptal sandım Web.config girdisine göre doğru bağlantıları kullanmaya dbml zorlamak için yapabileceğim bir şey var mı?
VB'yi tercihimce kullanmıyorum. Ben bir C# adamım. Bu özel uygulama VB.NET ve .NET 1.1 kodlanmıştır. C# 'de yeniden yazmayı ve vurulmuş zaman kısıtlamaları nedeniyle önerdik. :(Cevabınız için teşekkürler. – Hcabnettek
İşte bu şekilde yapıyorum. – mattruma
Bu harika çalışıyor! Fabrika yöntemlerine gittim ve her şeyi Dim db olarak güncelledim myDataContext = myDataContext.Create Paylaşımın C# Static'e benzer olduğunu düşünüyorum Yöntem Intellisense'de ortaya çıktığı gibi. Büyük çözüm için teşekkürler! – Hcabnettek