Dapperサンプルコードの明確化

c# dapper

質問

私はDapperを掘り下げようとしており、何か非常に基本的なものを見逃しているようだ。誰かがDapperのホームページから取得した次のコードをGoogleコードで説明し、From句がない理由と2番目のパラメータがQueryメソッド)が匿名型を渡されたとき、私はこれを何とかしてコマンドオブジェクトを設定していますが、単なる死の用語で説明したいと思います。

ありがとう、スティーブン

public class Dog {    
    public int? Age { get; set; }    
    public Guid Id { get; set; }    
    public string Name { get; set; }    
    public float? Weight { get; set; }    
    public int IgnoredProperty {
        get { return 1; }
    }
}

var guid = Guid.NewGuid();
var dog = connection.Query<Dog>("select Age = @Age, Id = @Id", new { Age = (int?)null, Id = guid });            

dog.Count().IsEqualTo(1);
dog.First().Age.IsNull();
dog.First().Id.IsEqualTo(guid);

受け入れられた回答

最初の2つの例は、おそらく単純なものにするために、実際のデータアクセスを行わないだけです。
はい、接続が使用されていますが( connection.Query(...) )、これはDapperのメソッドを呼び出す唯一の方法(IDbConnectionインターフェイスを拡張するため)です。

このようなものは、完全に有効なSQLコードです。

select 'foo', 1

...実際にテーブルから何も選択せずに、その結​​果を即座に "生成"します。

パラメータと匿名型の例:

var dog = connection.Query<Dog>("select Age = @Age, Id = @Id", new { Age = (int?)null, Id = guid });

... Dapperが匿名型の形式でSQLパラメータを送信する機能示しています
この場合も、クエリは実際にテーブルから何も選択しません。これはおそらく単純なものです。



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ