MVC4 C # Заполнение данных в модели представления из базы данных
У меня есть viewmodel, которая нуждается в данных от двух моделей person и address:
Модели:
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public int Gender { get; set; }
}
public class Address
{
public int Id { get; set; }
public string Street { get; set; }
public int Zip { get; set; }
public int PersonId {get; set; }
}
Viewmodel как таковая
public class PersonAddViewModel
{
public int Id { get; set; }
public string Name { get; set; }
public string Street { get; set; }
}
Я пробовал несколько способов получить данные в viewmodel и передать их в представление. Будет отображено несколько записей.
Мой последний метод заполняет модель представления как таковую:
private AppContexts db = new AppContexts();
public ActionResult ListPeople()
{
var model = new PersonAddViewModel();
var people = db.Persons;
foreach(Person p in people)
{
Address address = db.Addresses.SingleOrDefault(a => a.PersonId == p.Id)
model.Id = p.Id;
model.Name = p.Name;
model.Street = address.Street;
}
return View(model.ToList());
}
Я получаю сообщение об ошибке Address address = db ... line of "EntityCommandExecutionException не было обработано кодом пользователя.
Как вы можете заполнить модель представления несколькими записями и перейти к представлению?
Окончательное решение:
private AppContexts db = new AppContexts();
private AppContexts dbt = new AppContexts();
public ActionResult ListPeople()
{
List list = new List();
var people = db.Persons;
foreach(Person p in people)
{
PersonAddViewModel model = new PersonAddViewModel();
Address address = dbt.Addresses.SingleOrDefault(a => a.PersonId == p.Id)
model.Id = p.Id;
model.Name = p.Name;
model.Street = address.Street;
}
return View(list);
}