Что еще вы можете сделать с вашим DAL, кроме файла dbml - PullRequest
0 голосов
/ 19 марта 2011

ПРИМЕЧАНИЕ: я не эксперт, поэтому, если вы считаете этот вопрос глупым / неубедительным, пожалуйста, простите и занимайтесь своими делами.:)

Хорошо, как говорят все видеоуроки, создайте файл элемента LinqToSqlClasses (dbml).перетащите таблицы, и мы закончили.

Но в моем случае (или, вероятно, во всех сценариях реального мира) нам нужно больше из нашего уровня доступа к данным, чем просто автоматически сгенерированные классы, верно?

Например: в простом бухгалтерском программном обеспечении: у меня есть таблица счетов и таблица бухгалтерских транзакций,

Теперь, чтобы получить бухгалтерскую книгу любого аккаунта, нам нужно написать довольно длинный SQL-запрос на длительность, то же самое касается пробного баланса, дняbook, и Single Vouchers и так далее.

Что мы можем сделать в DAL, чтобы оптимизировать эти запросы для обеспечения максимальной производительности.

1 Ответ

1 голос
/ 19 марта 2011

Я бы рекомендовал использовать Entity Framework вместо Linq to SQL.

Но в обоих этих случаях у вас есть возможности Linq для таких запросов. Плюс это дает вам лучшую дизайнерскую поддержку (intellisense, строгие типы, проверка времени компиляции)

EF или LinqToSQL становится DAL нижнего уровня, и в дополнение к этому вы бы использовали шаблон Repository для вызова своих объектов данных в слабосвязанной форме. Вы также можете добавить специальные методы для определенных репозиториев для запроса данных определенным образом, если это необходимо инкапсулировать.

Вам следует поискать в SO шаблон хранилища с помощью Entity Framework или LinqToSql, вы найдете несколько реализаций.

Смотрите этот ответ: Преимущество создания общего хранилища по сравнению с конкретным хранилищем для каждого объекта?

...