Использование EntityDataSource для выбора всех элементов в свойстве навигации для GridView - PullRequest
1 голос
/ 23 ноября 2011

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

У меня есть таблица с именем users, в которой первичным ключом является user_ISN. Пользователи могут быть друзьями других пользователей, поэтому у меня есть таблица друзей, в которой хранятся user_ISN пользователя и user_ISN друга .. создавая отношения многие ко многим. Платформа сущностей смоделировала это как самостоятельное соединение со свойством навигации user.friends, которое, конечно, возвращает вас к пользовательской таблице.

Мне нужно создать веб-страницу ASP.Net, которая использует сетку для отображения только друзей текущего пользователя, вошедшего в систему. Я создал параметр для источника данных, который содержит ISN текущего пользователя.

Мне не удалось выяснить, как выбрать только пользователей, которые являются друзьями текущего пользователя. Все, что я пробую, дает мне различные ошибки, которые я не понимаю. Можете ли вы указать мне правильное направление? Я более чем готов провести дополнительное исследование, но сейчас я даже не знаю, что искать.

Спасибо.

1 Ответ

1 голос
/ 24 ноября 2011

В разметке элемента управления EntityDataSource добавьте атрибут «Включить».

Например:

      <asp:EntityDataSource ... Include="Friends" ... />

Это работает благодаря свойствам навигации, предоставляемым структурой сущностей для ваших таблиц.

Теперь вам также необходимо изменить свойство «Где» вашего элемента управления EntityDataSource. В окне свойств выберите свойство «Где». Откроется окно «Редактор выражений». Вам нужно будет создать параметр для User_ISN. Затем укажите «Источник параметров» из списка. Выберите параметр, применимый к тому, как вы передаете User_ISN на свою страницу (например, QueryString, если вы передаете значение в своем URL). Окончательное выражение «Где» должно выглядеть примерно так:

      it.User_ISN == @User_ISN

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

Важно отметить, что этот подход будет работать только при использовании столбцов TemplateField. Это не сработает, если вы используете столбцы BoundField с GridView.

Если это не поможет, пожалуйста, предоставьте сообщения об ошибках, которые вы получаете.

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