В контексте n-уровневого приложения, есть ли разница между тем, что вы считаете вашими классами доступа к данным, и вашими репозиториями?
Я склонен думать, что да, но я просто хотел посмотреть, что думают другие. Я думаю, что работа хранилища заключается в том, чтобы просто содержать и выполнять сам необработанный запрос, где, как класс доступа к данным, будет создавать контекст, выполнять хранилище (передавая в контексте), обрабатывать сопоставление модели данных с моделью предметной области. и вернуть результат обратно ...
Что вы, ребята, думаете? Также вы видите какие-либо изменения в сценарии Linq to XML (при условии, что вы изменили контекст для соответствующего XDocument)?
Ура Энтони
UPDATE:
Это способ, которым я обычно реализовывал вещи ранее:
public class TermBl : ITermBl
{
public IEnumerable<ITerm> GetAll(IListParameter criteria)
{
//Any pre business logic
var dataLayer = this.CreateDataLayer();
var result = dataLayer.GetAll(criteria);
//Any post business logic
return result;
}
... Other methods
}
public class TermDa : ITermDa
{
public IEnumerable<ITerm> GetAll(IListParameter criteria)
{
//Linq query
var dataResult = ....ToList()
var mappedResult = this.FromDataToDomain(dataResult);
//Note the mapping isn't done in this object, the actual
// mapping is handled by a separate component
return mappedResult;
}
... Other methods
}
Видите ли вы какие-либо присущие здесь проблемы с шаблоном в целом ...
Что касается хранилища, в котором я думал об использовании, то вместо запроса непосредственно в методе GetAll TermDa я бы изменил его так, чтобы он выглядел примерно так:
public class TermDa : ITermDa
{
public IEnumerable<ITerm> GetAll(IListParameter criteria)
{
var repository = this.CreateRepository();
var dataResult = repository.GetAll(..., criteria).ToList();
var mappedResult = this.FromDataToDomain(dataResult);
return mappedResult;
}
... Other methods
}
public class TermRepository : ITermRepository
{
public IQueryable<ITerm> GetAll(IMyContext context, IListParameter criteria)
{
//Linq query
return ...;
}
... Other queries
}
Вы, ребята, видите, как это работает или нет на самом деле ... С хранилищем или без него я вижу, что любое из вышеперечисленного полностью защищает бизнес-уровень от знания чего-либо об используемых методах / технологиях доступа к данным ...