ASP .Net Core 使用 Dapper 轻型ORM框架
看了好多,先做个笔记吧
Dapper是.NET下一个micro的ORM,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的。
也就是说实体类都要自己写。它没有复杂的配置文件,一个单文件就可以了。给出官方地址。
http://code.google.com/p/dapper-dot-net/
个人觉得他非常好用,现在已经取代了原来的SqlHelper。优点:
- 使用Dapper可以自动进行对象映射!
- 轻量级,单文件。
- 支持多数据库。
- Dapper原理通过Emit反射IDataReader(数据读取器)的序列队列,来快速的得到和产生对象。
- 由于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();