Я не так знаком с LINQ to SQL, как с Entity Framework (v4), но EF, безусловно, соответствовал бы вашим требованиям. Вы можете загрузить POCO templates for EF из Microsoft, прямо через VS2010 в диспетчере расширений («Инструмент»> «Диспетчер расширений», нажмите «Онлайн-галерея» и выполните поиск POCO). Ссылка - это не только загрузка шаблона, но и прохождение игры о том, как начать работу.
Я также начал a series of blog posts, которые включают в себя некоторые красивые шаблоны T4 для модели Entity Framework EDMX, которые автоматически генерируют классы DTO для всех ваших классов сущностей, независимо от того, используете ли вы модель генерации кода по умолчанию или шаблон POCO Microsoft. Автоматически создаваемые DTO удобны для использования в пользовательском интерфейсе или на уровне обслуживания, а также избавляют вас от необходимости устанавливать зависимости от Entity Framework в потребляющих слоях. Также очень легко получить DTO от объектов сущности.
var people = from p in context.People select p;
return people.ToDtos();
Возможно, стоит посмотреть (бесстыдная самореклама).
Если вам нужно/хотите придерживаться LINQ to SQL, выполните поиск в google для «linq to sql POCO», кажется, что некоторые люди имеют определенный успех с этим, но большинство результатов поиска, похоже, с 2008 года и ранее, поэтому я не уверен в отношении валюты/релевантности.
Я хочу создать классы сущностей, которые не зависят от LINQ (чтобы иметь почти чистую модель домена и для сохранения незнания). Так что перетаскивание таблиц в конструктор не является решением. Исправьте меня, если я ошибаюсь. – amitkarmakar
Ahh, из вашего вопроса я прочитал его так, как будто вы хотели что-то, что сгенерировало бы ваши классы из схемы для вас и поддерживало LINQ.В настоящее время вы используете LINQ to SQL, только вы хотели бы, чтобы ваши классы каждый в своем .cs-файле. То, что я получил от вопроса в любом случае. Сами классы хранятся в файле MyDatabase.designer.cs, и вы можете копировать/вставлять их из своих собственных файлов .cs и извлекать ненужные материалы. Единственная проблема тогда в том, что дизайнер попытается создать повторяющиеся классы. –
Спасибо. Кстати, классы в файле designer.cs содержат много блоттинга. Мне нужно многое изложить. Разве нет более удобного решения для создания чистых классов сущностей. Я знаю, что я могу программно генерировать классы сущностей, но я просто любопытство, если кто-то уже это сделал, возможно, используя некоторые внешние инструменты. – amitkarmakar