Разделение проблем с Linq К SQL и DTO

Я считаю, что JWebPane станет официальным способом встроить браузер в приложение java. Он основан на открытом исходном движке - WebKit, который используется в браузерах Apple Safari и Googles Chrome. Подробнее см. в этом блоге .

11
задан Cœur 27 April 2017 в 18:39
поделиться

2 ответа

Я не знаю, является ли это лучшая практика, но я написал подобный код в не так недалекое прошлое, потому что я также чувствовал, что мог улучшить разделение проблем при помощи моих собственных классов вместо LINQ-designer-generated в рамках моего приложения.

Можно хотеть рассмотреть просто возврат IQueryable <Клиент> вместо IList <Клиент> от метода доступа к данным. С тех пор IQueryable <T> наследовался IEnumerable <T>, остальная часть Вашего приложения должна смочь иметь дело с ним вполне хорошо. Можно также преобразовать его в Список, когда Вы действительно должны.

Преимущество этого состоит в том, что можно динамично изменить запрос довольно легко и minimze объем данных, возвращенный из SQL Server.

Например, если Ваша сигнатура метода является IQueryable <Клиент> GetCustomers (), Вы могли бы получить единственного клиента путем вызова GetCustomers ().Where (c => c. CustomerID == 101).Single ();

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

5
ответ дан 3 December 2019 в 11:04
поделиться

По-моему, в большинстве случаев объекты DTO не нужны при контакте с LINQ. Сгенерированные классы LINQ могут быть легко протестированы. LINQ дает Вам способность запросить Ваши данные из других источников с помощью идентичных запросов. Это дает Вам способность протестировать Ваши запросы против списков объектов вместо реального дб.

2
ответ дан 3 December 2019 в 11:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: