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);
}

Ответы на вопрос(2)

Ваш ответ на вопрос