Я читаю книгу «ASP.NET 3.5 Social Networking - Andrew Siemer», и я смутился, когда он использовал репозитории для доступа к данным.Репозиторий данных - бизнес-объекты?
Вот идея его кода:
public interface IAccountRepository
{
Account GetAcountByID(int acId);
void SaveAccount(Account account);
List<Account> GetAllAccounts();
}
public class AccountRepositoryLINQ : IAccountRepository
{
Account GetAcountByID(int acId){
..... LINQ query .....
...... return.....
}
void SaveAccount(Account account){
..... LINQ .....
}
List<Account> GetAllAccounts(){
..... LINQ query .....
...... return.....
}
}
Класс «Счет» является один генерируется автоматически на «LINQ к классам SQL».
Некоторые из проблем, которые я вижу:
1º Я закодировать свой бизнес слой, GUI, и т.д. ... и позже во время, табличные счета в базе данных изменяются (пример: изменить имя одного столбца), тогда мне нужно перестроить «LINQ to SQL Classes», и все мои слои кода должны быть перекодированы, потому что изменился мой объект «Account».
2º Если мне нужно иметь другие репозитории (MySQL, Oracle, XML, другие), какой класс "Счет" будет использовать?
Что делать?
- Не следует использовать специальный класс учетной записи? Это будет использоваться во всех слоях приложения.
- Как сопоставление LINQ с моим пользовательским классом учетной записи?
- Использование простого «myClass.Name = linqClass.Name;» ???
- Разве это не ресурсы потребляющих машин, если мне нужно «отобразить» все классы?
- Существует не самый простой/легкий способ сделать это?
- Правильно ли это? Есть ли другие способы?
- Использование простого «myClass.Name = linqClass.Name;» ???