Я пытался заставить его работать, но я не знаю, чего здесь не хватает.Entity Framework - загрузка определенных данных внешнего ключа
Мои модели:
public class User
{
public int id { get; set; }
public string username { get; set; }
public virtual List<UserMeta> usermeta { get; set; }
public User()
{
this.usermeta = new List<UserMeta>();
}
}
public class UserMeta
{
public int id { get; set; }
public string metakey { get; set; }
public string value { get; set; }
public virtual User user { get; set; }
}
Я хочу, чтобы выбрать metavalue для metakey = 'first_name'
В настоящее время это то, что я и его работы:
var user = db.Users.Include("UserMeta");
foreach (var item in user)
{
Console.WriteLine(item.username);
foreach (var item2 in item.usermeta)
{
// check item2.metakey for 'first_name'
}
}
Но он выиграл Работает следующим образом:
var user = from u in db.Users
select u;
foreach (var item in user)
{
foreach (var item2 in item.usermeta)
{
}
}
Что не так во втором фрагменте кода. Также есть лучший способ загрузить их?
Просьба пояснить, что вы подразумеваете под «обычной работой». Получение ошибки? Неверные данные? Прочитайте [Как создать минимальный, полный и проверяемый пример] (http://stackoverflow.com/help/mcve). Я подозреваю, что вы пытаетесь получить доступ к «Пользователи» после того, как «DbContext» был удален, но с информацией, которую вы включили, невозможно сообщить. – Tone