Dapper.Rainbow簡単に使用

1861 ワード

一.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
    {
        protected readonly string _connectionString;
        protected IDbConnection _connection;
        public IDbConnection Connection => _connection ?? (_connection = GetOpenConncetion());
 
       //  
        public Table Site { get; set; }
        public Table 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;
        }
    }