Sono riuscito a ottenere qualcosa di attivo e funzionante oggi come piccolo progetto sandbox/POC, ma sono sembrate a sbattere la testa su una questione ...Dapper. Mappa alla Colonna di SQL con gli spazi nei nomi delle colonne
Domanda:
C'è un modo per ottenere dapper mappare i nomi delle colonne SQL con spazi al loro interno.
Ho qualcosa in questo senso come il mio set di risultati.
Ad esempio:
SELECT 001 AS [Col 1],
901 AS [Col 2],
00454345345345435349 AS [Col 3],
03453453453454353458 AS [Col 4]
FROM [Some Schema].[Some Table]
E mia classe sarebbe simile a questa
public class ClassA
{
public string Col1 { get; set; }
public string Col2 { get; set; }
///... etc
}
mia applicazione si presenta così al momento
public Tuple<IList<TClass>, IList<TClass2>> QueryMultiple<TClass, TClass2>(object parameters)
{
List<TClass> output1;
List<TClass2> output2;
using (var data = this.Connection.QueryMultiple(this.GlobalParameter.RpcProcedureName, parameters, CommandType.StoredProcedure))
{
output1 = data.Read<TClass>().ToList();
output2 = data.Read<TClass2>().ToList();
}
var result = new Tuple<IList<TClass>, IList<TClass2>>(output1, output2);
return result;
}
Nota: SQL non può essere modificato in alcun modo.
Attualmente sto passando attraverso il codice dapper, e la mia unica soluzione prevedibile è aggiungere del codice per "convincere" il confronto tra le colonne, ma non avere molta fortuna finora.
Ho visto su StackOverflow che ci sono cose come le estensioni dapper, ma spero di poterlo fare senza aggiungere un'estensione, altrimenti. Prenderò tutto ciò che è più veloce da implementare.
Ho questo stesso bisogno. Mi sono aggirato aggiungendo alias a tutte le colonne della mia query ma è incredibilmente noioso. Le soluzioni di seguito potrebbero funzionare ma sarebbe davvero bello se Dapper potesse semplicemente aggiungere una proprietà/parametro per ignorare gli spazi invece di dover aggiungere tutti i mapper dei clienti.Questi sono nomi legali e dovrebbe essere in grado di mapparli con poco sforzo. –