У меня возникли проблемы с получением значения для некоторых связанных данных с использованием Entity Framework. Основная предпосылка является то, что «собственность» относится к одному «сообществу», и «сообщество» относится к одному «региону»Получение связанных данных из viewmodel?
У меня есть следующая модель для моей собственности:
public class Property
{
public int ID { get; set; }
public string Name { get; set; }
public int CommunityID { get; set; }
public int PropertyTypeID { get; set; }
public virtual Community Community { get; set; }
}
и для моей модели сообщества ..
public class Community
{
public int ID { get; set; }
public string Name { get; set; }
public Region Region { get; set; }
public virtual ICollection<Property> Properties { get; set; }
}
и для моего региона ...
public class Region
{
public int ID { get; set; }
public string Name { get; set; }
public virtual ICollection<Community> Communities { get; set; }
}
Я вытащил все-й это вместе в ViewModel ...
public class PropertyDetailViewModel
{
public string Name { get; set; }
public virtual Community Community { get; set; }
public virtual Region Region { get; set; }
}
Однако, проблема возникает при попытке нажать, что в целях, используя следующий метод контроллера:
Property property = await db.Property.FindAsync(id);
var viewModel = new PropertyDetailViewModel
{
Name = property.Name,
Community = property.Community,
Region = property.Community.Region
};
return View(viewModel);
На мой взгляд, я творю заполнитель для региона имен с использованием
@ Html.DisplayFor (модель => model.Region.Name)
Но это показывается как пустое, хотя в базе данных есть достоверные записи?
, имеющие записей в БД одна вещь, которую вы заселение свойство на вашей модели представления? вы отлаживали его, чтобы узнать, установлены ли значения? –
Учебник, который я читал, кажется, использует виртуальные свойства. После быстрого поиска в Интернете кажется более эффективным при вызове базы данных, поскольку она использует ленивую загрузку. – Gavin5511
А, да, это имеет смысл. Позвольте мне попробовать, и я дам вам знать, как я нахожусь. Спасибо – Gavin5511