Возникли проблемы с тем, что должно быть очень простым сценарием. Например, у меня есть две таблицы:
-Пользователи
-Комментарии
Для этого установлены отношения один-ко-многим; есть внешний ключ от Comments.CommentorID
до Users.UserID
. Когда я делаю запрос LINQ и пытаюсь привязать к DataList
, я получаю нулевое исключение. Вот код:
FKMModel.FKMEntities ctx = new FKMModel.FKMEntities();
IQueryable<Comment> CommentQuery =
from x in ctx.Comment
where x.SiteID == 101
select x;
List<Comment> Comments = CommentQuery.ToList();
dl_MajorComments.DataSource = Comments;
dl_MajorComments.DataBind();
На странице ASPX в качестве ItemTemplate у меня есть следующее (я упростил его, вынул стили и т. Д. Для публикации здесь, поскольку это не имеет значения):
<div>
<%# ((FKMModel.Comment)Container.DataItem).FKMUser.Username %>
<%# ((FKMModel.Comment)Container.DataItem).CommentDate.Value.ToShortDateString() %>
<%# ((FKMModel.Comment)Container.DataItem).CommentTime %>
</div>
Исключение возникает при первой привязке (FKMUser.Username
). Поскольку внешний ключ настроен, у меня не должно возникнуть проблем с доступом к каким-либо свойствам из таблицы Users. Intellisense установил свойство навигации FKMUser
и знает свойства этой внешней таблицы. Что здесь происходит ???