@ Dan
EntityBase serait une classe de base que chaque objet entité hérite, quelque chose comme:
public class EntityBase
{
public virtual string SaveSproc { get; }
public virtual void LoadFromReader(SqlReader reader)
{
}
public virtual void Save()
{
List<SqlParameters> paramList = = this.CreateParamsList();
DoSqlStuff(this.SaveSproc, paramList);
}
public virtual List<SqlParamenter> CreateParamsList()
{
return new List<SqlParameter>
}
}
public Company : EntityBase
{
private string _data;
public override string SaveSproc { get { return "SprocThatSaves"; } }
public override List<SqlParameter> CreateParamList()
{
List<SqlParameter> param = new List<SqlParameter>
param.Add(new SqlParameter("Data",_data);
return param;
}
public override void LoadFromReader(SqlReader reader)
{
// PsuedoCode
_data = reader["data"];
}
}
Maintenant, votre niveau de DB peut obtenir un lecteur avec des données de l'entreprise, et faire quelque chose comme :
Company = new Company();
Company.LoadFromReader(reader);
Et ailleurs, pour enregistrer vos données:
Company.Save();
N'est-ce pas vraiment un objet de mappage relationnel? "n-tier" n'est pas vraiment significatif, n'est-ce pas? –