Недавно я начал новый проект webforms и решил отделить бизнес-классы от любых ссылок DBML. Мои классы бизнес-уровня вместо этого обращаются к дискретным методам уровня данных и возвращаются коллекциями DTO. Таким образом, уровень данных может проецировать DTO как следующее:Разделение проблем с Linq To SQL и DTO
(from c in dataContext.Customers
where c.Active == true
select new DTO.Customer
{
CustomerID = c.CustomerID,
Name = c.CustomerName,
...
}).ToList()
Хотя строительство объектов DTO добавляет работу, это чувствует, как лучше подойти к жесткой привязке между бизнесом & слоев данных и означает, что я могу проверить бизнес-слой без присутствующая база данных.
Вопрос в том, является ли это хорошей практикой? Есть ли способ генерации DTO (может быть, через SQLMetal) и какие другие проблемы могут возникать при продвижении проекта.
Я разместил ссылки на внешнее сопоставление XML здесь: http://stackoverflow.com/questions/988872/linq-to-sql-external-mapping/1136039#1136039 – alexandrul 2009-07-16 07:58:29