У меня есть метод в моей DAL, возвращающий список клиентов:отложенной загрузки в моем C# приложении
Collection<Customer> FindAllCustomers();
Клиента имеет следующие столбцы: идентификатор, имя, адрес, Bio
мне нужно показать их в сетке с подкачками в моей ASPX-форме (show-customers.aspx), где я буду показывать только эти столбцы: ID, имя
Теперь, в моем DAL FindAllCustomers(), я также возвращаю поле Bio из SP (я заполняю коллекцию с помощью читателя)? Поле Bio может быть большим (nvarchar (max)). Я думал о ленивой загрузке или загрузке только необходимых полей. Но тогда в этом случае мне нужно будет создать еще один метод, который возвращает «полный» список клиентов, включая биографию, чтобы сторонние приложения могли использовать ее через сервисный уровень. Так это нормально, чтобы создать метод, как это:
Collection<Customer> FindAllCustomers(bool loadPartial);
Если loadPartial = верно, то не загружать Bio, иначе загрузить его. В этом случае, поскольку я не хочу возвращать Bio из SP, мне нужно будет создать 2 оператора select в моем SP на основе значения bool.
Я думаю, что использование ленивой загрузки здесь не будет работать, потому что тогда к DAL-методу можно получить доступ к стороннему приложению, которое, возможно, захочет загрузить биографию.
Любые предложения по наилучшему образцу для реализации в таких случаях?
спасибо,
Викас
1. Параметр bool, переданный в DAL, определяет, нужно ли нам загружать другие «несущественные большие» поля или нет. В будущем могут быть другие поля, которые могут не потребоваться. 2. Если loadPartial = true, био не будет вообще доступна. Я понимаю альтернативный способ: лениво загружать Bio, как только это свойство будет доступно. – user154624
Но опять же, IMO для этого типа ленивой загрузки есть два метода: 1. в DAL читайте читатель в колонке Bio, но не загружайте его в свойстве Customer. В этом случае, поскольку читатель считывает всю строку (а не по столбцам), мы будем тратить драгоценную рассылку пропускной способности DB, позволяя SP возвращать весь столбец Bio для каждой записи. 2. Загрузите биоколонку через параметризованный SP, как только доступ к ресурсу Bio. В этом случае я бы сделал два звонка DAL. Не знаете, насколько это хорошо? – user154624