C# 如何在多域服务中使用一个连接字符串?
如何更改域服务构造函数中的this.ObjectContext.Connection 我使用多数据模型和多域服务C# 如何在多域服务中使用一个连接字符串?,c#,entity-framework,wcf-ria-services,objectcontext,domainservices,C#,Entity Framework,Wcf Ria Services,Objectcontext,Domainservices,如何更改域服务构造函数中的this.ObjectContext.Connection 我使用多数据模型和多域服务 ... <add name="PermissionEntities" connectionString="metadata=res://*/Entities.General.Permission.csdl|res://*/Entities.General.Permission.ssdl|res://*/Entities.General.Permissio
...
<add name="PermissionEntities" connectionString="metadata=res://*/Entities.General.Permission.csdl|res://*/Entities.General.Permission.ssdl|res://*/Entities.General.Permission.msl;provider=System.Data.SqlClient;provider connection string="Data Source=10.10.10.10;initial catalog=Development;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
<add name="ProfileEntities" connectionString="metadata=res://*/Entities.General.Profile.csdl|res://*/Entities.General.Profile.ssdl|res://*/Entities.General.Profile.msl;provider=System.Data.SqlClient;provider connection string="Data Source=10.10.10.10;initial catalog=Development;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
...
。。。
...
我想在运行时在域服务构造函数中更改“.csdl”、““.ssdl”、““.msl”。这是通过在域服务类中重写
CreateObjectContext
解决的
protected override Connection CreateObjectContext()
{
// Start out by creating the SQL Server connection string
SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder();
// Set the properties for the data source. The IP address network address
sqlBuilder.DataSource = @"10.10.10.10";
// The name of the database on the server
sqlBuilder.InitialCatalog = "Development";
sqlBuilder.IntegratedSecurity = true;
sqlBuilder.MultipleActiveResultSets = true;
sqlBuilder.ApplicationName = "EntityFramework";
// Now create the Entity Framework connection string
EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
//Set the provider name.
entityBuilder.Provider = "System.Data.SqlClient";
// Set the provider-specific connection string.
entityBuilder.ProviderConnectionString = sqlBuilder.ToString();
// Set the Metadata location.
entityBuilder.Metadata = @"res://*/Entities.Permission.csdl|res://*/Entities.Permission.ssdl|res://*/Entities.Permission.msl";
// Create and entity connection
EntityConnection conn = new EntityConnection(entityBuilder.ToString());
return new Connection(conn);
}