一. Dapper 简介
一个效率比较高的微型ORM。
二 . Dapper.Rainbow
Dapper的扩展,在这个扩展里面实现了 Dynamic 的 插入和更新,这个对于使用动态类型的对象很有用,可以少建很多贫血型的实体类。
三 . Dynamic
Dynamic 这是一把双刃剑,在提高效率的同时,也增加了出错的机会。的确要合理使用。
四. Dapper.Rainbow的使用
// Api 名称
public virtual long Insert([Dynamic] dynamic data);
public long InsertOrUpdate([Dynamic] dynamic data);
public int Update(TId id, [Dynamic] dynamic data);
// 示列代码
new ConfigContext().Init().Job.Insert(dynamic T);
new ConfigContext().Init().Job.InsertOrUpdate(dynamic T);
new ConfigContext().Init().Job.Update(dynamic T)
public class ConfigContext : Database<ConfigContext>
{
protected readonly string _connectionString;
protected IDbConnection _connection;
public IDbConnection Connection => _connection ?? (_connection = GetOpenConncetion());
//表名
public Table<Site> Site { get; set; }
public Table<Job> Job { get; set; }
public ConfigContext()
{
_connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["Config_connectionString"].ConnectionString;
}
public ConfigContext Init()
{
return Init(Connection as System.Data.Common.DbConnection, commandTimeout: 200);
}
public IDbConnection GetOpenConncetion()
{
var connection = new SQLiteConnection(_connectionString);
connection.Open();
return connection;
}
}