Files
Data-Coupler/DataConnection/DB/EF/DatabaseSchemaProviderFactory.cs
Alessio Dal Santo 01f78466df [Feature] Implementazione completa supporto ODBC
- Aggiunta persistenza campi ODBC (OdbcDsnName, OdbcMode) in CredentialEntity
- Creata migration EF Core per nuovi campi database
- Aggiornato mapping credenziali per caricare/salvare dati ODBC
- Creato OdbcDatabaseManager dedicato (bypass EF Core che non supporta ODBC)
- Aggiornato DataConnectionFactory per usare OdbcDatabaseManager con connessioni ODBC
- Fix auto-load DSN: sostituito @onchange con @bind-Value:after in dropdown tipo database
- Fix test connessione SAP HANA: rimossa query SELECT 1 che causava errori sintassi
- Implementati tutti i metodi IDatabaseManager in OdbcDatabaseManager
- Supporto completo per discovery schema, tabelle e query ODBC

Risolve problema DbContext non configurato per ODBC e abilita connessioni ODBC complete.
2026-02-02 18:24:44 +01:00

32 lines
1.3 KiB
C#

using System;
using DataConnection.EF.SchemaProviders;
using DataConnection.Enums;
using DataConnection.Interfaces;
namespace DataConnection.EF;
/// <summary>
/// Factory per la creazione di provider di schema del database
/// </summary>
public class DatabaseSchemaProviderFactory
{
/// <summary>
/// Crea un provider di schema in base al tipo di database
/// </summary>
/// <param name="databaseType">Tipo di database</param>
/// <returns>Provider di schema appropriato</returns>
public static IDatabaseSchemaProvider CreateProvider(DatabaseType databaseType)
{
return databaseType switch
{
DatabaseType.SqlServer => new SqlServerSchemaProvider(), DatabaseType.Odbc => new OdbcSchemaProvider(), // Aggiungere qui altri provider quando implementati
// DatabaseType.MySql => new MySqlSchemaProvider(),
// DatabaseType.PostgreSql => new PostgreSqlSchemaProvider(),
// DatabaseType.Oracle => new OracleSchemaProvider(),
// DatabaseType.Sqlite => new SqliteSchemaProvider(),
// DatabaseType.DB2 => new DB2SchemaProvider(),
// DatabaseType.SapHana => new SapHanaSchemaProvider(),
_ => throw new NotSupportedException($"Tipo di database non supportato per l'estrazione dello schema: {databaseType}")
};
}
}