我是Silverlight的新手,我正在關注Silverlight for Business Applications教程。我已經使用ADO.NET實體模型和域服務連接了一個MDF文件,如視頻所示,所有這些工作都很好。Silverlight/ASP.NET - 使用ADO.NET /域服務動態指向數據庫
併發症來自需要動態指向數據庫。
在我的應用程序中,用戶將登錄。登錄後,程序將根據用戶定製體驗。這意味着我需要在認證之後從Silverlight應用程序中指向用戶特定的數據庫。
我已經想通過更改後面的代碼來更改模型的連接字符串,如下面的代碼所示。然而,我不太確定我可以使用它或者如何使用它來工作,因爲Silverlight應用程序和ASP.NET之間沒有直接的聯繫。
string fileName = string.Empty;
void OnContextCreated()
{
this.Connection.ConnectionString = GenerateConnectionString(".\\SQLEXPRESS", "|DataDirectory|\\" + fileName + ".mdf");
}
public static string GenerateConnectionString(string dbServer, string fileName)
{
SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder();
// Set the properties for the data source.
sqlBuilder.DataSource = dbServer;
//sqlBuilder.InitialCatalog = dbName;
//sqlBuilder.UserID = "YOUR_USERNAME";
//sqlBuilder.Password = "YOUR_PASSWORD";
sqlBuilder.IntegratedSecurity = true;
sqlBuilder.AttachDBFilename = fileName;
sqlBuilder.UserInstance = true;
sqlBuilder.MultipleActiveResultSets = true;
sqlBuilder.ApplicationName = "EntityFramework";
// Build the SqlConnection connection string.
string providerString = sqlBuilder.ToString();
// Initialize the EntityConnectionStringBuilder.
EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
//Set the provider name.
entityBuilder.Provider = "System.Data.SqlClient";
// Set the provider-specific connection string.
entityBuilder.ProviderConnectionString = providerString;
// Set the Metadata location.
entityBuilder.Metadata = @"res://*/Model.csdl|
res://*/Model.ssdl|
res://*/Model.msl";
return entityBuilder.ToString();
}
如果可能的話,我想堅持到視頻中所示的方法,使用Domain Services和ADO.NET實體模型,因爲我獲得的RIA Services功能讓我拖刪除表格,推送更改等等。
如何在運行時指向數據庫,同時仍然使用視頻中顯示的方法?
編輯
所有的SQL數據庫,我將指向具有相同的佈局。也就是說,他們有相同的表和字段。用戶特定的數據被填充到這些字段中。
你好ChrisBD。謝謝回覆。如上所述,我對Silverlight和Web編程一般都不熟悉。我在桌面應用程序中更流暢,比如控制檯應用程序和XNA。你說的很多東西,我不明白。 請您詳細說明如何才能實現MVVM模式?如果你能把我和一個能夠實現我的目標的樣本聯繫起來,或者將我指向可以學習的資源,那就太好了。 謝謝! – Dragonseer 2012-01-10 06:03:37
爲您添加了一些可能有所幫助的鏈接。 – ChrisBD 2012-01-10 08:37:54
謝謝你的幫助! – Dragonseer 2012-02-10 19:16:45