git_bsmd/nsw/Source/bsmd.database/DatabaseEntity.cs

53 lines
1.5 KiB
C#

//
// 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;
/// <summary>
/// SQL Table name to construct queries
/// </summary>
public string Tablename { get { return this.tablename; } }
/// <summary>
/// primary key
/// </summary>
public Guid? Id { get { return this.id; } }
/// <summary>
/// IsNew Flag
/// </summary>
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<DatabaseEntity> LoadList(IDataReader reader);
}
}