ORM框架Dapper詳細教程

2022-09-09 21:12:27 字數 2929 閱讀 8926

輕量級:通過實現idbconnection的擴充套件方法 所有例項方法需要自己寫 它是通過sql與表的對映功能首先建立乙個.net core專案

}/// ///根據sql查詢

///

/// 查詢語句需要對映的類

/// 查詢語句

///

public t select(string sql)

}/// /// 查詢sql返回的行數

///

///

///

public int exec(string sql)

}public int exec(string sql, object model)

}/// /// 是否需要執行事務

///

///

///

///

///

public int exec(string sql, object model, bool usetransaction = false)

else}}

/// /// 必須是 string @c_ids

///

///

///

///

public listqueryin(string sql, string c_ids)

).tolist();}}

/// /// 必須是 int @ids

///

///

///

///

public listqueryin(string sql, int ids)

).tolist();}}

/// /// 執行事務

///

///

///

private idbtransaction begintransaction(idbconnection conn)

/// /// 擴充套件方法 插入表 在進行資料批量導庫的時候 比單次一條條存庫 (單次匯入 需要每次都開啟資料庫連線 )速度提高

///

///

///

public void inserttable(datatable dt, string tablename)}}

使用 在控制器中實現的**塊 下面主要舉例了兩種方法 乙個是基礎查詢 還有乙個是批量插入庫

//資料庫 普通查詢

var locallist = orm.select("select * from local");

//呼叫擴充套件 使用sqlbulkcopy 批量存庫

listts = new list();

local locala = new local();

locala.id = guid.newguid();

locala.sendtime = "kanfkasf";

locala.backtime = "kanfkasf";

locala.status = 0;

local localb = new local();

localb.id = guid.newguid();

localb.sendtime = "dfafaf";

localb.backtime = "dfssfd";

localb.status = 2;

ts.add(locala);

ts.add(localb);

orm.inserttable(listtodatatable(ts), "local");

#endregion

上面的批量入庫的方法中呼叫了 list轉datatable的方法

/// /// list轉table

///

///

///

///

public static datatable listtodatatable(listentitys)

//取出第乙個實體的所有propertie

type entitytype = entitys[0].gettype();

propertyinfo entityproperties = entitytype.getproperties();

//生成datatable的structure

//生產**中,應將生成的datatable結構cache起來,此處略

datatable dt = new datatable("dt");

for (int i = 0; i < entityproperties.length; i++)

entityproperties[i].getmethod);

dt.columns.add(entityproperties[i].name, coltype);

}//將所有entity新增到datatable中

foreach (object entity in entitys)

object entityvalues = new object[entityproperties.length];

for (int i = 0; i < entityproperties.length; i++)

dt.rows.add(entityvalues);

}return dt;

}

ORM框架 Dapper案例

查詢列表 查詢的sql 替換引數 public static listquery string sql,object param 查詢第乙個資料 public static t queryfirst string sql,object param 返回乙個物件集合 public static lis...

輕量型ORM框架Dapper的使用

public classliuniancontext idisposable 執行增刪改操作 包括批量操作 sql語句 有引數引數化 引數化值 public bool execute string sql,objectparam catch returnissuccess 執行儲存過程操作 儲存過程...

ORM系列之三 Dapper

目錄 快,讀取資料接近idatareader。支援大部分主流的資料庫,如 ms sql,oracle,mysql,sqlite等等。支援對映一對一,一對多,多對多關係。示例中需要用到兩個實體型別,分別為post.cs和user.cs。1 2 3 4 5 6 7 8 9 10 11 12 13 pub...