Solnake
Advanced Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору BlackVetal Аналогично делаю проекты. Для работы с базой есть классы приблезительно такой структуры Код: public class TemplateRelationDALC: DALCBase { #region Properties private int _TVID; private int _TOTVID; private int _RID; private ViewRelationDALC _SelfRelations; public int TVID { get { return _TVID; } set { _TVID = value; } } public int TOTVID { get { return _TOTVID; } set { _TOTVID = value; } } public int RID { get { return _RID; } set { _RID = value; } } public ViewRelationDALC SelfRelations { get { if (_SelfRelations==null) { _SelfRelations = ViewRelationDALC.Get(RID, Transaction); } return _SelfRelations; } set { _SelfRelations = value; } } #endregion #region Constructors public TemplateRelationDALC(int _TVID, int _TOTVID, int _RID, SqlTransaction p_Transaction) : base(p_Transaction) { this._TVID = _TVID; this._TOTVID = _TOTVID; this._RID = _RID; } public TemplateRelationDALC(int _TVID, int _TOTVID, int _RID) { this._TVID = _TVID; this._TOTVID = _TOTVID; this._RID = _RID; } #endregion public override int Save() { StProcedure.ProcedureName = "rb_TemplateRelation_Save"; StProcedure["@ID"].Direction = ParameterDirection.InputOutput; StProcedure["@ID"].Value = ID; StProcedure["@TVID"].Value = _TVID; StProcedure["@TOTVID"].Value = _TOTVID; StProcedure["@RID"].Value = _RID; StProcedure.ExecuteNonQuery(); int tmpID = (int)StProcedure["@ID"].Value; if (tmpID>0) SetID(tmpID); return ID; } #region Get public static TemplateRelationDALC Get(int id, SqlTransaction p_Transaction) { StoredProcedure sp = new StoredProcedure("rb_TemplateRelation_Select", p_Transaction); sp["@ID"].Value = id; sp["@TVID"].Value = DBNull.Value; sp["@TOTVID"].Value = DBNull.Value; DataReader dr = sp.ExecuteReader(); try { if (dr.Read()) { TemplateRelationDALC dalc = new TemplateRelationDALC(dr.GetInt32("TVID"), dr.GetInt32("TOTVID"), dr.GetInt32("RID"), p_Transaction); dalc.SetID(dr.GetInt32("TRID")); return dalc; } return null; } finally { dr.Close(); } } public static TemplateRelationDALC Get(int id) { return Get(id, null); } public static TemplateRellationCollection GetAll(int tvid, SqlTransaction p_Transaction) { StoredProcedure sp = new StoredProcedure("rb_TemplateRelation_Select", p_Transaction); sp["@ID"].Value = DBNull.Value; sp["@TVID"].Value = tvid; sp["@TOTVID"].Value = DBNull.Value; DataReader dr = sp.ExecuteReader(); try { TemplateRellationCollection collection = new TemplateRellationCollection(); while (dr.Read()) { TemplateRelationDALC dalc = new TemplateRelationDALC(dr.GetInt32("TVID"), dr.GetInt32("TOTVID"), dr.GetInt32("RID"), p_Transaction); dalc.SetID(dr.GetInt32("TRID")); collection.Add(dalc); } return collection; } finally { dr.Close(); } } #endregion public void Delete() { StProcedure.ProcedureName = "rb_TemplateRelation_Delete"; StProcedure["@ID"].Value = ID; StProcedure.ExecuteNonQuery(); } } | Никакого sql-текста запросов в коде, все что связано с работой с базой - все в хранимых процедурах. |