LinqToSql и WCF - PullRequest
       32

LinqToSql и WCF

2 голосов
/ 25 сентября 2008

В приложении n-уровня, которое использует службу WCF для взаимодействия с базой данных, каков наилучший практический способ использования классов LinqToSql в приложении?

Я видел, что это делалось несколькими разными способами, но казалось, что они потратили много часов на создание дополнительных интерфейсов, классов сообщений и т. П., Что уменьшает выгоду, которую вы получаете от отсутствия написания кода доступа к данным.

Есть ли хороший способ сделать это в настоящее время? Мы застряли в ожидании Entity Framework?

Ответы [ 2 ]

2 голосов
/ 06 октября 2008

Конечно, не стоит передавать объект linq-to-sql другим частям распределенной системы. Если вы сделаете это, вы бы подключили своих клиентов к структуре базы данных, что никогда не было бы хорошей идеей. Кстати, это было / является одной из главных проблем с DataSets.

Лучше создать свои собственные классы для передачи объекта данных. Эти классы, конечно, будут реализованы как DataContracts. На вашем сервисном уровне вы должны конвертировать между объектами linq-to-sql и экземплярами объектов носителя данных. Это утомительно, но оно отделяет клиентов службы от схемы базы данных. Он также имеет преимущество, заключающееся в улучшении контроля над данными, передаваемыми в вашей системе.

2 голосов
/ 25 сентября 2008

LINQ to SQL не очень подходит для использования с распределенным приложением. Отслеживание изменений и отложенная загрузка являются частью DataContext, который связан с базой данных, поэтому не может перемещаться по проводам. Вы можете перемещать объекты L2S по проводам, изменять их, перемещать обратно и обновлять базу данных, повторно присоединяя их к DataContext, но это довольно ограниченно, и вы теряете все проверки параллелизма, поскольку старые значения никогда не сохраняются.

Кстати, я верю, что то же самое относится и к L2E.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...