Dapper官方教程翻译4:Dapper方法之QueryFirst(转)

Dapper官方教程翻译4:Dapper方法之QueryFirst

QueryFirst方法描述

 

QueryFirst方法也是一个扩展方法,可以被IDbConnection对象调用,可以执行查询语句,并且映射到结果。

可以映射的类型:

  • Anonymous(匿名类型 var)
  • Strongly Typed(强类型)

 

QueryFirst方法可使用的参数

 

QueryFirst方法参数说明
参数名 参数说明
sql 数据库语句
param 查询参数
transaction 所使用的事务
commandTimeout 执行超时时间
commandType 语句类型

 

First,FirstOrDefault,Single,SingleOrDefault对比

 

Result No Item One Item Many Items
First Exception Item First Item
Single Exception Item Exception
FirstOrDefault Default Item First Item
SingleOrDefault Default Item Exception

xx与xxOrDefault的区别:xx在找不到数据的时候会引发异常,而xxOrDefault会返回默认值,所以不确定有没有值的时候,优先使用xxOrDefault。 

在含有多个值的时候,Single与SingleOrDefault都会引发异常,而First或者FirstOrDefault会返回第一个满足条件的值。

综上,优先使用FirstOrDefault

 

匿名查询

 

  1.  
    string sql = "SELECT * FROM OrderDetails WHERE OrderDetailID = @OrderDetailID;";
  2.  
     
  3.  
    using (var connection = new SqlCeConnection("Data Source=SqlCe_W3Schools.sdf"))
  4.  
    {
  5.  
    var orderDetail = connection.QueryFirst(sql, new {OrderDetailID = 1});
  6.  
     
  7.  
    FiddleHelper.WriteTable(orderDetail);
  8.  
    }

 

强类型查询

 

  1.  
    string sql = "SELECT * FROM OrderDetails WHERE OrderDetailID = @OrderDetailID;";
  2.  
     
  3.  
    using (var connection = new SqlCeConnection("Data Source=SqlCe_W3Schools.sdf"))
  4.  
    {
  5.  
    var orderDetail = connection.QueryFirst(sql, new {OrderDetailID = 1});
  6.  
     
  7.  
    FiddleHelper.WriteTable(orderDetail);
  8.  
    }

 

转载于:https://www.cnblogs.com/LiZhongZhongY/p/10991657.html

你可能感兴趣的:(Dapper官方教程翻译4:Dapper方法之QueryFirst(转))