Я изо всех сил пытаюсь придумать хороший способ использования linq2sql, просто я хочу его использовать, но я не могу понять, лучше ли обернуть сгенерированные linq2sql классы внутри моих классов модели, предоставляя некоторую форму общего абстрактного базового класса / или интерфейс для общих методов в моих классах модели, таких как добавление, обновление, удаление и т. д., или для расширения частичных классов, созданных linq2sql.
Какой дизайн люди считают наиболее успешным? и не могли бы вы вкратце ознакомиться с этими проектами?
(Я знаю, что это отчасти субъективно, потому что у каждого будут свои лучшие способы, однако я не уверен, следует ли это помечать так. Не стесняйтесь редактировать и создавать вики сообщества, если считаете, что это должно быть.)





Лично я оборачиваю Linq2SQL в шаблон репозитория.
отличный пример с окситом, следует добавить ссылку на него в ответ в качестве образца
В зависимости от сложности вашего приложения вам может понадобиться или не понадобится использовать что-либо, кроме сгенерированных классов для вашего ORM. Я обнаружил, что могу с радостью жить со сгенерированными классами, расширенными частичными методами и путем обертывания контекста данных оболочкой (и, возможно, расширенной, если мне нужно добавить общие функции), чтобы улучшить тестируемость. Однако большинство моих приложений относительно просты с точки зрения базы данных.
Я добавлю к этому комментарию, что компания, в которой я сейчас работаю, имеет дизайн базы данных с более чем 200 таблицами, я переместил их в LINQ 2 SQL как бандаж «перетаскивания всех таблиц», пока мы не изменим дизайн. Суть моего комментария в том, что ... вещи прекрасно работают даже в чрезмерно сложной и негабаритной базе данных :)
Я видел хороший пример этого на платформе ведения блогов MVC (забудьте название), сделанный некоторыми парнями из Microsoft на codeplex. Действительно помог мне понять один способ обернуть его в шаблон репозитория :)