Dapper

2011-11-08 23 views
22
bir ExecuteScalar var

o Dapper bir ExecuteScalar ... gibiydi Dapper

http://code.google.com/p/dapper-dot-net/issues/attachmentText?id=22&aid=220000000&name=ExecuteScalar.cs&token=9e2fd8899022f507b140ffb883c60e34

ExecuteScalar adını veya kaldırılmış oldu görünüyor?

Bu, şu şekilde elde edilebilir: .Query veya .Query < T>?

+7

Hiç eklemediğimiz nedeni basitçe: '.Single()' aynı şeyi yapar. Altta yatan uygulamaları vb. Inceledik ve fazladan bir yöntemin eklenmesi konusunda gerçek bir fayda söz konusu değil. –

+0

.Single() bir Dapper uzantısı yöntemi olarak gelmiyor. Bu, .net çerçevesindeki temel bir yöntemde mi? – sgtz

+1

Demek istiyorum: 'int value = conn.Query (sql, args) .Single();' veya 'dize değeri = conn.Query (sql, args) .Single();', vb –

cevap

19

ExecuteScalar sadece 1.28 eklendi: https://www.nuget.org/packages/Dapper Ben sürümüyle ExecuteScalar < T> çağırmak başardı

+0

Biraz şaşkınım var, eğer bunu doğru anlarsam, Dapper'ın şimdiki sürümünde (8 Ekim 2015'teki gibi 1.42) NO yürütme skalar. Bu işlevsellik, LINQ yöntemi Single() ile elde edilir. Sağ? – dotnetguy

+1

1.42 hala var. Alttaki SqlCommand.ExecuteScalar() yöntemini kullanır. Bu, .Single() ve .First() öğelerinden farklı davranır (özellikle, hiçbir kayıt geri gelmezse null döndürür). Bkz. Https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executescalar(v=vs.110).aspx –

6

1.42.0

public Boolean BeforeToday(DateTime dateInQuestion) 
    { 
     try 
     { 
      using (var conn = new SqlConnection(ConnectionString)) 
      { 
       String sql = @"SELECT CONVERT(bit, CASE WHEN getdate() > @dateParameter THEN 1 ELSE 0 END) AS BeforeToday"; 

       var result = conn.ExecuteScalar<Boolean>(sql, new { dateParameter = dateInQuestion }); 

       return result; 
      } 
     } 
     catch (Exception) 
     { 
      return dateInQuestion < DateTime.Now; 
     } 
    } 
sürümü 1.50.4 ben çağırmak başardı
0

connection.QuerySingle<int>(query,params)

+0

Bu tam bir cevap değildir. Temsilcisi olduğunda bir yorum yapmanızı tavsiye ederim. –

İlgili konular