2015-09-27 63 views
0

好吧,而不是与xml战斗,我被引导到EntityConnectionStringBuilder。所以这是我迄今为止所拥有的。 EnityManagerFactory调用创建方法。现在Create方法创建并返回一个EntityManager,在这种情况下称为UnionEntities使用EntityConnectionStringBuilder建立一个动态的IdeaBlade连接字符串

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()使用在app.Config fileConnectionString。我现在如何告诉它使用我的EntityConnectionStringBuilder对象?

回答

1

您可以在DevForce中实现IDataSourceKeyResolver以动态构建或修改连接字符串。链接将带您到DevForce资源中心的一个主题,但如果您在那里搜索“IDataSourceKeyResolver”,您可以找到其他信息和示例。