Exemple #1
0
 public override void Lock(Database.DatabaseHelper dbHelper)
 {
     try {
         OracleCommand command = dbHelper.Connection.CreateCommand();
         command.CommandText = String.Format(QRY_SELECT + " FOR UPDATE", this.Id);
         command.ExecuteScalar();
         Memento.Id        = Id;
         Memento.FirstName = FirstName;
         Memento.LastName  = FirstName;
     }
     catch (OracleException e) {
         throw e;
     }
 }
        /// <summary>
        /// Repository初始化
        /// </summary>
        /// <param name="databaseReader">数据库读访问对象</param>
        /// <param name="databaseWriter">数据库写访问对象</param>
        public RepositoryDatabase(Database.DatabaseHelper databaseReader, Database.DatabaseHelper databaseWriter)
            : this(databaseReader)
        {
            if (databaseWriter == null)
            {
                throw new ArgumentNullException("databaseWriter");
            }

            if (databaseReader.DbProvider.ProviderName != databaseWriter.DbProvider.ProviderName)
            {
                throw new ArgumentException("数据库读写连接对象的驱动不一致");
            }

            _dbWriter = databaseWriter;
        }
        /// <summary>
        /// Repository初始化
        /// </summary>
        /// <param name="database">数据库读写访问对象</param>
        public RepositoryDatabase(Database.DatabaseHelper database)
        {
            if (database == null)
            {
                throw new ArgumentNullException("database");
            }

            if (typeof(T) == typeof(DynamicEntity))
            {
                throw new ArgumentException(string.Format("泛型T不能是{0}", typeof(DynamicEntity).FullName));
            }

            _dbReader = database;
            _dbWriter = database;
            var accessor = Map.GetCheckedAccessor <T>();

            dbMetaInfo = accessor.MetaInfo as IDbMetaInfo;
            metaInfo   = accessor.MetaInfo;
        }