我试图找到Dapper并且似乎缺少一些非常基础的东西,有人可以解释下面的代码来自Dapper主页上的Google代码并解释为什么没有From子句,以及第二个参数查询方法(动态)传递一个匿名类型,我收集这是以某种方式设置一个命令对象,但想用一个凡人的术语解释.
谢谢你,斯蒂芬
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);
Run Code Online (Sandbox Code Playgroud)
Chr*_*cht 11
前两个示例只是不进行任何"真正的"数据访问,可能是为了保持简单.
是的,有一个连接used(connection.Query(...)),但只是因为这是调用Dapper方法的唯一方法(因为它们扩展了IDbConnection接口).
像这样的东西是完全有效的SQL代码:
select 'foo', 1
Run Code Online (Sandbox Code Playgroud)
...它只是在运行中"生成"其结果,而无需从表中实际选择任何内容.
带参数和匿名类型的示例:
var dog = connection.Query<Dog>("select Age = @Age, Id = @Id", new { Age = (int?)null, Id = guid });)
...只是显示了Dapper 以匿名类型的形式提交SQL参数的能力.
同样,查询实际上并没有从表中选择任何东西,可能是为了保持简单.