Если у вас есть, например, таблица базы данных с именем Person (ID, Name и т.д.), какой тип объекта должен вернуть уровень доступа к бизнес-уровню? Я думаю примерно так:
//data access tier
public class DataAccess{
public interface IPerson{
int ID{ get; set; }
string Name{ get; set; }
}
internal class Person : IPerson{
private int id;
private string name;
public int ID{ get{return id; } set{ id=value; } }
public int Name{ get{retutn name; } set{ name=value; }
}
public static IPerson GetPerson(int personId)
{
//get person record from db, populate Person object
return person;
}
}
//business tier
public class Person : IPerson{
private int id;
private string name;
public int ID{ get{return id;} set{id=value;} }
public string Name{ get{return name;} set{name=value;} }
public void Populate(int personId){
IPerson temp = DataAccess.GetPerson(personId);
this.ID = temp.ID;
this.Name = temp.Name;
}
}
Но все это кажется немного громоздким? Есть ли более элегантное решение этой проблемы? Должен ли я вернуть DataRow с уровня доступа к данным на бизнес-уровень?