Я работаю над системой планирования сотрудников. Я думаю, что у меня достаточно хорошо настроена база данных, и я столкнулся с проблемой при извлечении данных для моей базы данных и их переносе на страницу. Я использую LINQ, чтобы облегчить себе жизнь.
Здесь - реляционная карта объекта.
Вот мой оператор выбора Linq:
protected void LinqSelecting(object sender, LinqDataSourceSelectEventArgs e) {
MilhouseDataClassesDataContext mdb = new MilhouseDataClassesDataContext();
e.Result = from x in mdb.MilhouseHours
group x by x.HourString into hour
select new {
hourStr=hour.Key,
uName=hour};
}
Вот соответствующие части моего кода GridView:
<asp:GridView ID="GridView1" runat="server" DataSourceID="LinqDataSource1" AutoGenerateColumns="false">
<asp:TemplateField HeaderText="Sunday">
<ItemTemplate>
<asp:CheckBoxList ID="shiftsSun" runat="server" DataSource='<%#Eval("uName")%>' DataValueField="UserId" />
</ItemTemplate>
</asp:TemplateField>
...
</asp:Gridview>
Это правильно отобразит идентификатор пользователя из базы данных, но я хочу, чтобы он отображал имя пользователя. Единственный способ, с помощью которого я получил эту работу с дисплеем, - это изменение выражения моей группы на:
group x.aspnet_User by x.HourString into hour
Я думаю, что мне здесь не хватает большой концепции. Используя группу, я должен иметь доступ к членам класса aspnet_user через член uName моего анонимного класса ... или так я думал!
edit: Вот несколько скриншотов переменных, захваченных при отладке.
е. Результат | aspnet_User
Моя конечная цель - иметь сетку, которая будет показывать список рабочих смен в течение часа каждого дня в каждой ячейке. Любой дизайн или помощь кода будет принята с благодарностью. Кажется, я не могу обойти это.