Пожалуйста, рассмотрите следующий сценарий.
У вас есть сохраненный процесс, возвращающий множество результатов для
Запросы выполняются в целях отчетности.
В процедуре также используются табличные параметры (SQL 2008).
http://www.sommarskog.se/arrays-in-sql-2008.html#LINQ_EF
Эти наборы результатов доступны только для чтения, то есть вам не нужно
беспокоиться об обновлениях, удалениях или вставках.
Эти наборы результатов не отображаются ни в одну таблицу в базе данных;
это отчеты о результатах, а не зеркала таблиц базы данных.
Теперь, мой фон - классика Аспа, и пока я пытаюсь прочитать
кажется, что для всех стратегий доступа к данным .NET:
(1) MS продвигает Entity Framework
(2) MS обладает множеством стратегий доступа к данным / архитектуры
(3) вся тема является постоянным предметом обсуждения
(4) обстоятельства проекта помогают определить правильную стратегию доступа к данным,
и ORM не кажется оптимизированным для этого сценария доступа к данным
(5) не существует готового решения для отображения нескольких сохраненных процедур с наборами результатов
Кроме того, я ищу полный контроль над выводом html, так что если вы используете код позади,
только повторители и литералы будут использоваться для привязки данных.
Я считаю, что программная модель Web Forms не обеспечивает полного разделения
кода и контента, и могут быть такими же «спагетти», как классика жереха. (MVC
подход кажется гораздо более похожим на asp classic, но этот проект уже является WebForms.)
Я думаю, что это было бы довольно легко реализовать, если бы доступ к данным и встроенные сценарии <%%> были на одной странице.
Вот пример кода, который может привести:
<%
' data access (skipping a bunch of code)....
Dim myDataSet As New DataSet()
myCommand.Fill(myDataSet)
'...etc.
Teachers = myDataSet.Tables(0).Rows
Students = myDataSet.Tables(1).Rows
'... etc.%>
затем
<% If Teachers.Count > 0 Then%>
<table><% For Each _Teachers In Teachers%>
<tr>
<td><%= _Teachers(0)%></td>
<td><%= _Teachers(1)%></td>
</tr><% Next %>
</table>
<% Else%>Hey, there's no records.<% End If %>
(Когда я пытаюсь разделить доступ к данным в программном коде под «Protected Sub Page_Load ...»
переменные в коде, который я использую на странице .aspx, продолжают выдавать ошибку:
«[переменная] не объявлена. Может быть недоступна из-за уровня защиты.»)
Если наборы результатов из процедуры не являются строго типизированными,
это конец света, ужасная практика программирования, кошмар ремонтопригодности,
худший из возможных вариантов и т. д.?
Если наборы результатов из хранимого процесса должны быть строго напечатаны,
тогда какой самый эффективный способ сделать это? (Я не
найти простые учебники по этой теме.)
Заранее спасибо за любую помощь.