2015-09-27 6 views
0

ОК, а не борьба с xml i был направлен на EntityConnectionStringBuilder. Итак, вот что я до сих пор. EnityManagerFactory вызывает метод Create. Теперь метод Create создает и возвращает обратно EntityManager, в этом случае называется UnionEntities.Построение динамической строки соединения IdeaBlade с использованием EntityConnectionStringBuilder

public UnionEntities Create() 
     { 
      string providerName = "System.Data.SqlClient"; 
      string serverName = ConfigurationManager.AppSettings["DatabaseServer"]; 
      string databaseName = ConfigurationManager.AppSettings["DatabaseName"]; 
      string userName = ConfigurationManager.AppSettings["DatabaseUserName"]; 
      string password = ConfigurationManager.AppSettings["DatabasePassword"]; 
      bool integratedSecurity = bool.Parse(ConfigurationManager.AppSettings["IntegratedSecurity"]); 

      SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder(); 

      // Set the properties for the data source. 
      sqlBuilder.DataSource = serverName; 
      sqlBuilder.InitialCatalog = databaseName; 
      sqlBuilder.IntegratedSecurity = integratedSecurity; 
      sqlBuilder.UserID = userName; 
      sqlBuilder.Password = password; 

      // Build the SqlConnection connection string. 
      string providerString = sqlBuilder.ToString(); 

      // Initialize the EntityConnectionStringBuilder. 
      EntityConnectionStringBuilder entityBuilder = 
       new EntityConnectionStringBuilder(); 

      //Set the provider name. 
      entityBuilder.Provider = providerName; 

      // Set the provider-specific connection string. 
      entityBuilder.ProviderConnectionString = providerString; 

      // Set the Metadata location. 
      entityBuilder.Metadata = @"res://*/UnionModel.csdl| 
         res://*/UnionModel.ssdl| 
         res://*/UnionModel.msl"; 

      var manager = new UnionEntities(); 
      manager.Saving += SaveValidationHelper.SavingHandler; 
      manager.DefaultQueryStrategy = QueryStrategy.DataSourceOnly; 

      return manager; 
     } 

Теперь обычно новый UnionEntities() использует ConnectionString в app.Config file. Как я теперь скажу, чтобы вместо этого использовать мой объект EntityConnectionStringBuilder?

ответ

1

Вы можете реализовать IDataSourceKeyResolver в DevForce для динамического создания или изменения строки подключения. Ссылка приведет вас к одной теме в ресурсном центре DevForce, но если вы там ищите «IDataSourceKeyResolver», вы найдете дополнительную информацию и образец.