Я пытаюсь передать данные из моей основной таблицы (Users) и связанной таблицы (Posts) в представление, однако, когда я нахожусь в представлении, я не могу получить доступ к любому из связанных табличных данных. Я использую модель, созданную с использованием linq 2 sql, и я использую метод LoadWith для включения данных из связанной таблицы.DataLoadOptions не загружает связанную таблицу
Вот код в ActionResult:
BlogModelDataContext context = new BlogModelDataContext();
DataLoadOptions dlo = new DataLoadOptions();
dlo.LoadWith<UserModel>(c => c.PostModels);
context.LoadOptions = dlo;
var users = from u in context.UserModels
where u.UserId == WebSecurity.CurrentUserId
select u;
return View(users);
Вот код в ActionResults просмотра:
@model IEnumerable<MvcBlog.Models.UserModel>
@{
ViewBag.Title = "NewProfile";
}
<h2>NewProfile</h2>
@foreach (var item in Model)
{
@item.JoinDate
@item.Username
@foreach (var post in item.PostModels)
{
@post.
}
}
Однако, когда я пытаюсь получить доступ к полям почтовой таблицы, ничего , и я получаю следующее предупреждение:
Ошибка 2 оператор foreach не может работать с переменными типа
«System.Data.Linq.EntitySet», потому что «System.Data.Linq.EntitySet» не содержит публичное определение «GetEnumerator»
Я думал, когда я использую LoadWith
я должен быть в состоянии доступ к свойствам таблицы Post. Любая помощь будет принята с благодарностью.
Привет, Дэвид, я добавил ToList(), как вы сказали, однако я не могу получить доступ к свойствам из таблицы PostModels. – gb1986
Убедитесь, что в Linq есть определенная ссылка между UserModels и PostModels. Откройте файл dbml и дважды проверьте ссылку. Попробуйте удалить из dbml и повторно добавить. – David
Привет, Дэвид, я проверил dmbl, и есть отношения между UserModel и PostModel. Я удалил dbml и создал новый на всякий случай, и у меня все еще проблема. Правильно ли это заявление модели? @model IEnumerable –
gb1986