sql >> データベース >  >> RDS >> Mysql

同じアプリケーション、異なるデータベース:Entity Framework 6.X + MySQL + SQL Server

    したがって、最終的な解決策は次のとおりです。

    1. ブラックジャックとフッカーを使用して独自のDbConfigurationサクセサを作成します:

          public class MultipleDbConfiguration : DbConfiguration
          {
              #region Constructors 
      
              public MultipleDbConfiguration()
              {
                  SetProviderServices(MySqlProviderInvariantName.ProviderName, new MySqlProviderServices());
              }
      
              #endregion Constructors
      
              #region Public methods 
      
              public static DbConnection GetMySqlConnection(string connectionString)
              {
                  var connectionFactory = new MySqlConnectionFactory();
      
                  return connectionFactory.CreateConnection(connectionString);
              }
      
              #endregion Public methods
          }   
      
    2. MultipleDbConfigurationでMs_SqlContextをマークします(そして、その種のDbContextでは他に何もしません)

          [DbConfigurationType(typeof(MultipleDbConfiguration))]
          partial class Ms_SqlContext
          {
          }
      
    3. MultipleDbConfigurationでMs_SqlContextをマークし、MultipleDbConfiguration.GetMySqlConnection(nameOrConnectionString)

      を呼び出してMY_SqlContext(string nameOrConnectionString)を調整します。
          [DbConfigurationType(typeof(MultipleDbConfiguration))]
          partial class MY_SqlContext : DbContext
          {
                      public MY_SqlContext(string nameOrConnectionString) : base(MultipleDbConfiguration.GetMySqlConnection(nameOrConnectionString), true)
                      {}
          }
      
    4. それです!!!



    1. テーブルAPIとトランザクションAPIの違いを理解する

    2. 順番にテーブルに挿入

    3. MySQLで日時またはタイムスタンプのデータ型を使用する必要がありますか?

    4. PostgreSQLですべてのデータベースを表示する2つの方法(psql)