一. 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; } }