Я использую VS2015 Community Edition MVC5 - EF6Как вернуть все данные из Entity Framework после обновления модели
Я создал простую модель и ее операции CRUD. Модель: Person, Fields (Id, FirstName, LastName, DateofBirth ...).
Когда я обновил модель (добавлено два поля «Ссылки» со значениями по умолчанию).
Добавленные поля для модели Person: (national_Id, City_Id), каждый из которых является иностранными ключами по национальности и таблицам City.
Когда я вернулся в индексный метод
// GET:
public ActionResult Index()
{
List<Person> persons = db.Persons.ToList();
return View(persons);
}
public class Person
{
public int Id { get; set; }
public string DocumentCode { get; set; }
public string Name1 { get; set; }
public string Name2 { get; set; }
public string Name3 { get; set; }
public string Name4 { get; set; }
public DateTime DateOfBirth { get; set; }
public Address Address { get; set; }
}
public class Address
{
public int Id { get; set; }
public string Name { get; set; }
public List<Person> persons { get; set; }
}
Вот некоторые методы контроллера
// GET: People
public ActionResult Index()
{
List<Person> persons = db.Persons.ToList();
return View(persons);
}
// GET: People/Create
public ActionResult Create()
{
ViewBag.Addresses = new SelectList(db.Adresses, "Id", "Name");
return View();
}
// POST: People/Create
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "Id,DocumentCode,Name1,Name2,Name3,Name4,DateOfBirth,Address")] Person person)
{
if (ModelState.IsValid)
{
db.Persons.Add(person);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(person);
}
Вот кусок кода создать вид (должен отвечать на извлечение данных из поля зрения)
<div class="form-group">
@Html.LabelFor(model => model.Address, ClinicDemo.App_Start.SystemTranslation.ADDRESS, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("Address_Id", (IEnumerable<SelectListItem>)ViewBag.Addresses, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.Address, "", new { @class = "text-danger" })
</div>
</div>
Ниже приведен фрагмент кода, который должен содержать имя адреса в зависимости от объявления. dress_id, она по-прежнему пуст, даже в некоторых трудно закодированных данных
<td>
@Html.DisplayFor(modelItem => item.Address.Name)
</td>
лица объекта возвращает все данные без новых полей, даже когда я установить их вручную из базы данных, при добавлении нового человека все данные установлены правильно, за исключением тех полей,
Любая помощь?
Пожалуйста, покажите новый класс 'Person' и код, в котором вы создадите новый' Person'. Трудно догадаться, что случилось без него. –