假如你喜欢原生的Sql语句,又喜欢ORM的简单,那你一定会喜欢上Dapper这款ROM.点击下载 Dapper的优势:
1,Dapper是一个轻型的ORM类。代码就一个SqlMapper.cs文件,编译后就40K的一个很小的Dll.
2,Dapper很快。Dapper的速度接近与IDataReader,取列表的数据超过了DataTable。
3,Dapper支持什么数据库。Dapper支持Mysql,SqlLite,Mssql2000,Mssql2005,Oracle等一系列的数据库,当然如果你知道原理也可以让它支持Mongo db
4,Dapper的r支持多表并联的对象。支持一对多 多对多的关系。并且没侵入性,想用就用,不想用就不用。无XML无属性。代码以前怎么写现在还怎么写。 5,Dapper原理通过Emit反射IDataReader的序列队列,来快速的得到和产生对象。性能实在高高高。
6,Dapper支持net2.0,3.0,3.5,4.0。【如果想在Net2.0下使用,可以去网上找一下Net2.0下如何配置运行Net3.5即可。】
7,Dapper语法十分简单。并且无须迁就数据库的设计。
下面介绍Dapper如何使用,来进行高效开发,以下操作是编译后在Net3.5下操作的例子,Net4.0下大部分函数有默认值,参数很简单。
//数据库里的表: CREATE TABLE ColumnCat ( Id INT IDENTITY(1,1) NOT NULL PRIMARY KEY, NAME NVARCHAR(150) NULL, ModifiedOn SMALLDATETIME NULL DEFAULT(GETDATE()), Parentid INT ) CREATE TABLE Column ( Id INT IDENTITY(1,1) NOT NULL PRIMARY KEY, NAME NVARCHAR(150) NULL, ModifiedDate SMALLDATETIME NULL DEFAULT(GETDATE()), ColumnCatid INT null )
常用的表,分类和内容表,分类可以有下级类别。以下操作基本上都是对这两个表的操作。//连接数据库字符串。
private readonly string sqlconnection = "Data Source=RENFB;Initial Catalog=test;User Id=sa;Password=sa;"; //public readonly string mysqlconnectionString = @"server=127.0.0.1;database=test;uid=renfb;pwd=123456;charset='gbk'";
//获取Sql Server的连接数据库对象。SqlConnection
public SqlConnection OpenConnection() { SqlConnection connection = new SqlConnection(sqlconnection); connection.Open(); return connection; } //获取MySql的连接数据库对象。MySqlConnection //public MySqlConnection OpenConnection() //{ // MySqlConnection connection = new MySqlConnection(mysqlconnectionString); // connection.Open(); // return connection; /
注:如果需要换成Mysql数据库,只用将获得sql Server的连接数据库对象的函数注释掉,取消MySql的连接数据库对象的函数的注释,一并取消Mysql连接字符串的注释,并修改为自己的连接信息。
Query()方法: Query()是IDbConnection扩展方法并且重载了,从数据库里提取信息,并用来填充我们的业务对象模型。
//先创建一个类,是数据库的ColumnCat表的模型。public class ColumnCat{ public int Id { get; set; } public string Name { get; set; } public DateTime ModifiedOn { get; set; } public int Parentid { get; set; }}//获取ColumnCat对象的集合。public IEnumerable<ColumnCat> SelectColumnCats(){ using (IDbConnection conn = OpenConnection()) { const string query = "select * from ColumnCat order by id desc"; return conn.Query<ColumnCat>(query,null); }}
就是这么简单,直接在例子中嵌入Sql,很容易扩展为存储过程,可以使用别名使结果集中的列与业务对象模型(ColumnCat)的属性对应。
//下面使用上面的集合显示出分类。
List<ColumnCat> AllColumnCat =SelectColumnCats().ToList<ColumnCat>();foreach (ColumnCat cat in AllColumnCat.Where(c => c.Parentid == 0)){ Response.Write("Name==>" + cat.Name + "\t"); Response.Write("时间==>" + cat.ModifiedOn + "\t"); Response.Write("<br/>"); foreach (ColumnCat c in AllColumnCat .Where<ColumnCat>(subColumnCat => subColumnCat.Parentid == cat.Id)) { Response.Write(" ++++"); Response.Write("Name==>" + c.Name + "\t"); Response.Write("时间==>" + c.ModifiedOn + "\t"); Response.Write("<br/>"); }}
查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/net/
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数据库
, 对象
, connection
, response
, public
, dapper
sqlmapper配置
dapper net框架缺点、.net orm框架、.net orm 框架有哪些、asp.net orm框架、.net 轻量级orm框架,以便于您获取更多的相关知识。