Files
yes.blog/Yes.Infrastructure/Data/ConnectionStringBuilders/ConnectionStringBuilderFactory.cs
2025-04-30 09:51:36 +08:00

55 lines
2.1 KiB
C#

namespace Yes.Infrastructure.Data.ConnectionStringBuilders
{
public class ConnectionStringBuilderFactory
{
public static IConnectionStringBuilder CreateStringBuilder(DatabaseTypeEnum databaseType)
{
switch (databaseType)
{
case DatabaseTypeEnum.SqlServer:
return new SqlConnectionStringBuilder();
case DatabaseTypeEnum.MySql:
return new MySqlConnectionStringBuilder();
case DatabaseTypeEnum.PostgreSQL:
return new NpgsqlConnectionStringBuilder();
default:
throw new DatabaseNotSupportedException();
}
}
public static IConnectionStringBuilder CreateStringBuilder(DatabaseTypeEnum databaseType, string connectionString)
{
switch (databaseType)
{
case DatabaseTypeEnum.SqlServer:
return new SqlConnectionStringBuilder(connectionString);
case DatabaseTypeEnum.MySql:
return new MySqlConnectionStringBuilder(connectionString);
case DatabaseTypeEnum.PostgreSQL:
return new NpgsqlConnectionStringBuilder(connectionString);
default:
throw new DatabaseNotSupportedException();
}
}
public static IConnectionStringBuilder CreateStringBuilder(DatabaseTypeEnum databaseType, string dataSource, string database, string userId, string password)
{
switch (databaseType)
{
case DatabaseTypeEnum.SqlServer:
return new SqlConnectionStringBuilder(dataSource, database, userId, password);
case DatabaseTypeEnum.MySql:
return new MySqlConnectionStringBuilder(dataSource, database, userId, password);
case DatabaseTypeEnum.PostgreSQL:
return new NpgsqlConnectionStringBuilder(dataSource, database, userId, password);
default:
throw new DatabaseNotSupportedException();
}
}
}
}