Автоматизация получения сущности из DataReader
От: Darooma Россия  
Дата: 15.03.11 10:52
Оценка:
Есть множество сущностей, которые частично повторяют схему базы данных.

Например, в базе User(Id, Login, AddressId, ContactInfoId)
На клиенте — BEUser { Id, Login, Address, ContactInfo } — где Address и ContactInfo — это вложенные классы

Можно ли как-нибудь автоматизировать процесс получения данных из DataReader, чтобы не писать каждый раз


return new BEUser{
Id = reader.GetInt32(reader.GetOrdinal("Id")),
ContactInfo  = new ContactInfo (){ Id = reader.GetInt32(reader.GetOrdinal("ContactInfoId")) }
//.................

Причем, нужно учесть, формат сущности не должен зависеть от его представления в базе.

У меня была идея сделать это через отражение (рефлексию), но тогда нужно вводить атрибуты и это сделает сущность зависимой от схемы базы данных.
Есть еще идея сделать это через Extension методы. Таким образом каждая сущность будет сама отпределять, как прочитать себя из базы.


Entity Framework и ORM не предлагать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.