Хорошо, я делаю первый опыт использования ADO.NET Entity Framework.
Мой тестовый пример сейчас включает базу данных SQL Server 2008 с 2 таблицами, Member и Profile, с соотношением 1: 1.
Затем я использовал мастер Entity Data Model для автоматической генерации EDM из базы данных. Он сгенерировал модель с правильной ассоциацией. Теперь я хочу сделать это:
ObjectQuery<Member> members = entities.Member;
IQueryable<Member> membersQuery = from m in members select m;
foreach (Member m in membersQuery)
{
Profile p = m.Profile;
...
}
Который работает на полпути. Я могу перебрать всех членов. Но проблема у меня в том, что m.Profile всегда нулевой. Примеры LINQ to Entities в библиотеке MSDN, по-видимому, позволяют предположить, что я смогу беспрепятственно следовать навигационным отношениям, но это, похоже, не работает таким образом. Я обнаружил, что если я сначала каким-либо образом загружу профили в отдельном вызове, например, с использованием entity.Profile.ToList, то m.Profile будет указывать на действительный профиль.
Итак, мой вопрос: существует ли элегантный способ заставить фреймворк автоматически загружать данные по навигационным связям, или мне нужно сделать это явно с помощью соединения или чего-то еще?
Спасибо