2016-04-29 22 views
8

のために働いていない置き換えるこれは私のSQLDapperのパラメータは、トップ

var maxLimit =100; 
var sql = "Select Top @MaxLimit from Table WHere data [email protected]" 
conn.Query<Result>(sql, new { 
       Id = customerId, 
       MaxLimit = maxLimit 
      }) 

あるしかし、私はシステムエラーに@MaxLimit近く

間違った構文を取得します。

Dapperは、Top、Fetchなどのフィールドをパラメタ化できませんか?

答えて

16

SQLサーバーの場合、数値定数以外の式はかっこで囲む必要があります。

SELECT TOP (@MaxLimit) FROM ... 
+2

のみ2005と大きいでサポートされています。 (私の年齢を示す) – mxmissile

1

これはまた、新しいDapperのバージョンで動作します:

var sql = "Select Top {=MaxLimit} from Table WHere data [email protected]";