Я пытаюсь обновить запись базы данных, используя сущность framework. Субъектами являются:Попытка обновления базы данных с использованием кода Entity Framework Сначала
public partial class Test
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid identity { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public TestRef Colour { get; set; }
}
public class TestRef
{
public int id { get; set; }
public string favColor { get; set; }
}
и редактировать ActionResult в соответствующем контроллере выглядит следующим образом:
public ActionResult Edit([Bind(Include = "identity,Name,Age,Colour")] Test test)
{
if (ModelState.IsValid)
{
test.Colour = db.TestRefs.Find(test.Colour.id);
db.Tests.Attach(test);
db.Entry(test).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(test);
}
Так вот, Edit, кажется, работает для всех свойств в тесте за исключением цвета (в что все остальные свойства обновляются, но Цвет остается таким, каким он был до, без изменений). Я предполагаю, что это потому, что это ассоциация, но я не могу, чтобы жизнь меня определяла, почему.
Необходимо уточнить, что не работает. Правильно ли свойство цвета связывается с запросом? Является ли свойство Color не задано в базе данных? Тестирование TestRef, которое вы пытаетесь связать с этим тестом, уже существует в базе данных? Сообщите нам подробности. – Jakotheshadows
Свойство Color является обязательным, но не устанавливается в базе данных. Также TestRefs уже существуют в базе данных. – ASMoncrieff