// // Class: IDatabaseEntity // Current CLR: 4.0.30319.34209 // System: Microsoft Visual Studio 10.0 // Author: dani // Created: 3/2/2015 9:08:47 PM // // Copyright (c) 2015 Informatikbüro Daniel Schick. All rights reserved. using System; using System.Data; using System.Data.SqlClient; using System.Collections.Generic; namespace bsmd.database { public abstract class DatabaseEntity { protected Guid? id; protected string tablename; /// /// SQL Table name to construct queries /// public string Tablename { get { return this.tablename; } } /// /// primary key /// public Guid? Id { get { return this.id; } } /// /// IsNew Flag /// public bool IsNew { get { return !this.id.HasValue; } } public virtual void PrepareSave(IDbCommand cmd) { } public virtual void PrepareDelete(IDbCommand cmd) { SqlCommand scmd = cmd as SqlCommand; scmd.CommandText = string.Format("DELETE FROM {0} WHERE Id = @ID", Tablename); scmd.Parameters.AddWithValue("@ID", this.Id); } public abstract void PrepareLoadCommand(IDbCommand cmd, Message.LoadFilter filter, params object[] criteria); public abstract List LoadList(IDataReader reader); } }