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