赞
踩
Dapper是.NET中比较出名的ORM框架之一,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的。Dapper只有一个代码文件,完全开源,你可以放在项目里的任何位置,来实现数据到对象的ORM操作,体积小速度快。 使用ORM的好处是增、删、改很快,不用自己写sql,因为这都是重复技术含量低的工作,还有就是程序中大量的从数据库中读数据然后创建model,并为model字段赋值。这些ORM都可以轻松给你搞定。
Dapper网址:https://github.com/DapperLib/Dapper
Dapper-Extensions是一个小型库,也是Dapper扩展库之一,主要是通过POCO 添加基本的 CRUD 操作(获取、插入、更新、删除)来补充 Dapper。对于更高级的查询方案,Dapper 扩展提供了一个谓词系统。此库的目标是通过不需要任何属性或基类继承来保持 POCO 的纯正性。
Dapper-Extensions的网址:https://github.com/tmsmith/Dapper-Extensions
Dapper-Extensions的特点:
Install-Package DapperExtensions
Person类
public class Person
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public bool Active { get; set; }
public DateTime DateCreated { get; set; }
}
using (SqlConnection cn = new SqlConnection(_connectionString))
{
cn.Open();
Person p = new Person { Active = true, FirstName = "Foo", LastName = "Bar", DateCreated = DateTime.UtcNow };
int id = cn.Insert(person);
cn.Close();
}
using (SqlConnection cn = new SqlConnection(_connectionString))
{
cn.Open();
int personId = 1;
Person person = cn.Get<Person>(personId);
cn.Close();
}
using (SqlConnection cn = new SqlConnection(_connectionString))
{
cn.Open();
Person person = cn.Get<Person>(1);
cn.Delete(person);
cn.Close();
}
using (SqlConnection cn = new SqlConnection(_connectionString))
{
cn.Open();
int personId = 1;
Person person = cn.Get<Person>(personId);
person.LastName = "Baz";
cn.Update(person);
cn.Close();
}
using (SqlConnection cn = new SqlConnection(_connectionString))
{
cn.Open();
var predicate = Predicates.Field<Person>(f => f.Active, Operator.Eq, true);
IEnumerable<Person> list = cn.GetList<Person>(predicate);
cn.Close();
}
using (SqlConnection cn = new SqlConnection(_connectionString))
{
cn.Open();
//排序字段
IList<ISort> sort = new List<ISort> { Predicates.Sort<Person>(p => p.LastName),
Predicates.Sort<Person>("FirstName") };
//获取指定的记录
IEnumerable<Person> list = Db.GetPage<Person>(null, sort, 0, 2);
cn.Close();
}
using (SqlConnection cn = new SqlConnection(_connectionString))
{
cn.Open();
var predicate = Predicates.Field<Person>(f => f.DateCreated, Operator.Lt, DateTime.UtcNow.AddDays(-5));
int count = cn.Count<Person>(predicate);
cn.Close();
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。