Mercurial > pub > bltoolkit
diff Source/DataAccess/SprocQuery.cs @ 0:f990fcb411a9
Копия текущей версии из github
author | cin |
---|---|
date | Thu, 27 Mar 2014 21:46:09 +0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Source/DataAccess/SprocQuery.cs Thu Mar 27 21:46:09 2014 +0400 @@ -0,0 +1,282 @@ +using System; +using System.Collections; + +using BLToolkit.Data; + +namespace BLToolkit.DataAccess +{ + public class SprocQuery : DataAccessorBase + { + #region Constructors + + public SprocQuery() + { + } + + public SprocQuery(DbManager dbManager) + : base(dbManager) + { + } + + public SprocQuery(DbManager dbManager, bool dispose) + : base(dbManager, dispose) + { + } + + #endregion + + #region SelectByKey + + public virtual object SelectByKey(DbManager db, Type type, params object[] key) + { + return db + .SetSpCommand(GetSpName(type, "SelectByKey"), key) + .ExecuteObject(type); + } + + public virtual object SelectByKey(Type type, params object[] key) + { + DbManager db = GetDbManager(); + + try + { + return SelectByKey(db, type, key); + } + finally + { + Dispose(db); + } + } + + public virtual T SelectByKey<T>(DbManager db, params object[] key) + { + return db + .SetSpCommand(GetSpName(typeof(T), "SelectByKey"), key) + .ExecuteObject<T>(); + } + + public virtual T SelectByKey<T>(params object[] key) + { + DbManager db = GetDbManager(); + + try + { + return SelectByKey<T>(db, key); + } + finally + { + Dispose(db); + } + } + + #endregion + + #region SelectAll + + public virtual ArrayList SelectAll(DbManager db, Type type) + { + return db + .SetSpCommand(GetSpName(type, "SelectAll")) + .ExecuteList(type); + } + + public virtual IList SelectAll(DbManager db, IList list, Type type) + { + return db + .SetSpCommand(GetSpName(type, "SelectAll")) + .ExecuteList(list, type); + } + + public virtual ArrayList SelectAll(Type type) + { + DbManager db = GetDbManager(); + + try + { + return SelectAll(db, type); + } + finally + { + Dispose(db); + } + } + + public virtual IList SelectAll(IList list, Type type) + { + DbManager db = GetDbManager(); + + try + { + return SelectAll(db, list, type); + } + finally + { + Dispose(db); + } + } + + public virtual System.Collections.Generic.List<T> SelectAll<T>(DbManager db) + { + return db + .SetSpCommand(GetSpName(typeof(T), "SelectAll")) + .ExecuteList<T>(); + } + + public virtual L SelectAll<L,T>(DbManager db, L list) + where L : System.Collections.Generic.IList<T> + { + return db + .SetSpCommand(GetSpName(typeof(T), "SelectAll")) + .ExecuteList<L,T>(list); + } + + public virtual L SelectAll<L, T>(DbManager db) + where L : System.Collections.Generic.IList<T>, new() + { + return SelectAll<L, T>(db, new L()); + } + + public virtual System.Collections.Generic.List<T> SelectAll<T>() + { + DbManager db = GetDbManager(); + + try + { + return SelectAll<T>(db); + } + finally + { + Dispose(db); + } + } + + public virtual L SelectAll<L,T>(L list) + where L : System.Collections.Generic.IList<T> + { + DbManager db = GetDbManager(); + + try + { + return SelectAll<L,T>(db, list); + } + finally + { + Dispose(db); + } + } + + public virtual L SelectAll<L,T>() + where L : System.Collections.Generic.IList<T>, new() + { + return SelectAll<L,T>(new L()); + } + + #endregion + + #region Insert + + public virtual void Insert(DbManager db, object obj) + { + db + .SetSpCommand( + GetSpName(obj.GetType(), "Insert"), + db.CreateParameters(obj)) + .ExecuteNonQuery(); + } + + public virtual void Insert(object obj) + { + var db = GetDbManager(); + + try + { + Insert(db, obj); + } + finally + { + Dispose(db); + } + } + + #endregion + + #region Update + + public virtual int Update(DbManager db, object obj) + { + return db + .SetSpCommand( + GetSpName(obj.GetType(), "Update"), + db.CreateParameters(obj)) + .ExecuteNonQuery(); + } + + public virtual int Update(object obj) + { + DbManager db = GetDbManager(); + + try + { + return Update(db, obj); + } + finally + { + Dispose(db); + } + } + + #endregion + + #region DeleteByKey + + public virtual int DeleteByKey(DbManager db, Type type, params object[] key) + { + return db + .SetSpCommand(GetSpName(type, "Delete"), key) + .ExecuteNonQuery(); + } + + public virtual int DeleteByKey(Type type, params object[] key) + { + DbManager db = GetDbManager(); + + try + { + return DeleteByKey(db, type, key); + } + finally + { + Dispose(db); + } + } + + #endregion + + #region Delete + + public virtual int Delete(DbManager db, object obj) + { + return db + .SetSpCommand( + GetSpName(obj.GetType(), "Delete"), + db.CreateParameters(obj)) + .ExecuteNonQuery(); + } + + public virtual int Delete(object obj) + { + DbManager db = GetDbManager(); + + try + { + return Delete(db, obj); + } + finally + { + Dispose(db); + } + } + + #endregion + } +}