ASP .Net Core 使用 Dapper 轻型ORM框架

看了好多,先做个笔记吧

Dapper是.NET下一个micro的ORM,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的。

也就是说实体类都要自己写。它没有复杂的配置文件,一个单文件就可以了。给出官方地址。

http://code.google.com/p/dapper-dot-net/

个人觉得他非常好用,现在已经取代了原来的SqlHelper。优点:

  1. 使用Dapper可以自动进行对象映射
  2. 轻量级,单文件。
  3. 支持多数据库。
  4. Dapper原理通过Emit反射IDataReader(数据读取器)的序列队列,来快速的得到和产生对象。
  5. 由于Dapper ORM的操作实际上是对IDbConnection类的扩展,所有的方法都是该类的扩展方法。所以在使用前先实例化一个IDBConnection对象 
IDbConnection conn = new SqlConnection(connString);
Book book = new Book();
 book.Name="C#本质论";
 string query = "INSERT INTO Book(Name)VALUES(@name)";
//对对象进行操作
 conn.Execute(query, book);//是不是因为他是有自动进行对象映射的功能,然后就要加个对象类型
//直接赋值操作
 conn.Execute(query, new {name = "C#本质论"});

 Update 

string query = "UPDATE Book SET  Name=@name WHERE id =@id";
conn.Execute(query, book);

 delete

string query = "DELETE FROM Book WHERE id = @id";
conn.Execute(query, book);//是不是因为他是有自动进行对象映射的功能,然后就要加个对象类型
 conn.Execute(query, new { id = id });

 query

string query = "SELECT * FROM Book";
//无参数查询,返回列表,带参数查询和之前的参数赋值法相同。
 conn.Query<Book>(query).ToList();

 //返回单条信息
 string query = "SELECT * FROM Book WHERE id = @id";
 book = conn.Query<Book>(query, new { id = id }).SingleOrDefault();  
12-15 01:54