У меня есть класс POCO настроить так:Добавления данных к IList в БД броски ссылочного нарушения ограничения целостности с помощью EF в MVC
public class Survey
{
public int ID { get; set; }
public string Name { get; set; }
public virtual IList<Image> Images { get; set; }
}
public class Image
{
[Key]
public int ImageID { get; set; }
public int SurveyID { get; set; }
public string ImageUrl { get; set; }
public virtual Survey Survey { get; set; }
}
Я могу создать запись в базе данных со всеми полями, установленных соответствующим образом. Когда я пытаюсь редактировать элементы в изображениях, я сталкиваюсь с нарушением ограничения ссылочной целостности. Например, я изначально создал данные с двумя изображениями. В редактировании я добавляю другое изображение в коллекцию. В режиме редактирования я только установить ImageUrl, потому что я ожидаю, что EF, чтобы создать соответствующий ImageID и SurveyID, когда я сохраняю с помощью:
db.Entry(survey).State = EntityState.Modified;
db.SaveChanges();
Я проверил, что изображение [0 и 1] .ImageId, SurveyID, ImageUrl связаны соответствующим образом. Image [2] .ImageId и SurveyID установлены в 0, но я ожидаю, что EF установит их при сохранении в БД.
Я играл с вариантами с помощью modelbuilder, но есть кое-что, что я не получаю. Ваша помощь приветствуется.
Это ошибка, которую я получаю: Дополнительная информация: Нарушение ограничения ссылочной целостности: Значение (ы) свойства 'Survey.ID' на одном конце отношения не соответствует значению (-ам) свойства
EDIT редактировать код '' Image.SurveyID прилагается
public ActionResult Edit([Bind(Include = "ID,Name, Images")] Survey survey)
{
if (ModelState.IsValid)
{
db.Entry(survey).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(survey);
}
Можете ли вы опубликовать свой код действия редактирования. –
добавил "редактировать" actionresult – emad
У вас возникла ошибка при попытке отредактировать опрос или изображение? неясно на вопрос –