Могу ли я использовать свои собственные классы Model с Linq to SQL? - PullRequest
1 голос
/ 19 марта 2010

У меня довольно большое приложение, где моя стратегия доступа к данным всегда была довольно старой школы:

У меня есть 4 хранимых процедуры для каждой таблицы: TableName_Select, TableName_Insert, TableName_Update, TableName_Delete.

У меня есть класс обслуживания MsSql # DOMAIN # для каждого логического домена моего приложения. В этом классе у меня есть соответствующий метод, чтобы выбрать, вставить, обновить и удалить что-то в базе данных.

Я хочу поддерживать свои собственные классы Model в отдельном проекте библиотеки классов вместе с контрактами на обслуживание для сервисов WCF. Это позволяет мне ссылаться только на открытые модели, сервисные контракты и сервисные клиенты WCF, например, с. веб-приложение или приложение для Windows. (Я также не использую автоматически сгенерированные сервисные клиенты WCF)

Могу ли я использовать свои собственные классы моделей вместе с Linq-to-SQL - или мне нужно использовать автоматически сгенерированные модели из Linq-to-SQL, а затем сопоставить их с моими собственными моделями на уровне доступа к данным, прежде чем возвращать их? вернуться через службу WCF?

Ответы [ 3 ]

1 голос
/ 05 февраля 2011
0 голосов
/ 19 марта 2010

Мы сделали нечто подобное в наших приложениях. Мы написали наш собственный генератор кода для генерации наших классов L2S, а также того, что мы называем «сущностями» приложения. Они намного легче, чем классы L2S. Они используются на уровне приложений для передачи данных назад и вперед на наш сервер. Каждый класс сущности L2S имеет встроенный эквивалент сущности приложения, где происходит автоматическое сопоставление. Я имею в виду, что всякий раз, когда у объекта L2S есть данные, сохраненные в его свойствах, значения автоматически копируются в соответствующее свойство объекта приложения. Затем у нас есть метод для каждого объекта L2S, который позволяет нам извлекать связанный объект приложения.

Итак, короткий ответ - да, вы можете использовать свои собственные классы вместе с сущностями L2S.

0 голосов
/ 19 марта 2010

Вам не нужно использовать автоматически сгенерированные типы с контекстом данных Linq To Sql, но по умолчанию используемые типы должны иметь все аннотации атрибутов, которые вы увидите на них.

Однако Linq to Sql также поддерживает настраиваемое сопоставление (по умолчанию используются атрибуты), когда типы сопоставляются с таблицами, а их свойства сопоставляются со столбцами с использованием MappingSource , который предоставляется DataContext в строительство.

L2S поставляется с двумя - AttributeMappingSource (используется неявно) и XMLMappingSource . Возможно, со вторым из них вы можете вручную запустить DataContext Linq To Sql, который предоставляет EntitySets ваших собственных типов.

Вы могли бы даже написать свой собственный MappingSource - но я думаю, что XML, вероятно, покрывает большинство потребностей.

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