2015-07-07 8 views
8

Io uso dapper ORM.So io uso due regole Query & QuerySingle. Query restituisce l'elenco & QuerySingle restituisce il singolo oggetto.bool type return regola in dapper

Quindi, voglio ottenere un tipo bool. (In realtà ho voluto ottenere un bool è vera o falsa record)

mia domanda

public IEnumerable<T> Query<T>(string SqlString) where T : class 
    { 
     return this.conn.Query<T>(SqlString); 
    } 

Così, come posso scrivere tipo bool ritorno ?

+0

cosa restituisce effettivamente la query sql? – Jonesopolis

+2

Se si desidera utilizzare 'bool' come tipo generico, non utilizzare il vincolo' class'. – juharr

risposta

8

Quindi, voglio ottenere un tipo di bool. (In realtà ho voluto ottenere un bool è vero o falsa registrazione)

È possibile scrivere un metodo come questo:

public bool GetBooleanValue(string sql) 
{ 
    return the_connection.Query<bool>(sql).FirstOrDefault(); 
} 

La bellezza circa il FirstOrDefault è che quando la query restituisce una riga vuota , Dapper ti darà false. Il codice suggerito funzionerà finché la query restituirà un valore che può essere tradotto in un booleano dal fornitore di dati. In caso di SQL Server si otterrebbe:

  • TRUE per GetBooleanValue("select 1");
  • FALSE per GetBooleanValue("select 0");

dove1 e 0 sono valori da una colonna di tabella di tipo booleano.

È anche possibile utilizzare il codice se si desidera verificare se esiste qualcosa o esiste un gruppo di valori come GetBooleanValue("select COUNT(*) from the_table where the_column='some_filter'").