Отношения внешнего ключа в Платформе Объекта v.1

Я должен создать модель данных объекта в версии 1 EF, потому что мой веб-хост еще не имеет Платформы 4.0. Ниже просто простой пример для показа проблемы.

У меня есть 3 таблицы, одна таблица Users, другая таблица Webpages и одна таблица с Посещениями. Бывшие две таблицы у каждого есть связь "один ко многим" с таблицей Visits (который в основном работает many-many отношениями, только таблица Visits имеет свой собственный первичный ключ и дополнительные поля),

С версией 4.0 это работает, но она не делает с v.1. "Посещения" имеют количество 0, таким образом, тестовая строка возвращается ""... Да ведь и как я смог бы получить доступ к отношению внешнего ключа в v.1?

UsersEntities context = new UsersEntities();
var users = context.Users;
string result = "";
foreach (var user in users)
{
    foreach (var visit in user.Visits)
    {
        result += visit.Webpage.Url + "\n";
    }
}

Так циклы цикла foreach через пользователей, которых это получает хорошо, но внутренний цикл никогда не вводится, потому что нет никаких возвращенных Посещений. Снова, в Платформе 4.0 это хорошо работает, с помощью той же базы данных.

Так что случилось?

1
задан Anders 14 June 2010 в 22:13
поделиться

1 ответ

Просто измените свой код на этот:

UsersEntities context = new UsersEntities(); 
var users = context.Users.Include("Visits"); 
string result = ""; 
foreach (var user in users) 
{ 
    foreach (var visit in user.Visits) 
    { 
        result += visit.Webpage.Url + "\n"; 
    } 
} 

Обратите внимание на Include (...), который сообщает EF о необходимости загружать посещения каждого пользователя.

Теперь все должно работать.

На самом деле, если веб-страница тоже является навигацией, вам может понадобиться:

Include("Visits.Webpage");

Надеюсь, это сработает

2
ответ дан 2 September 2019 в 23:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: