У меня есть вопрос обновления существующего объекта в Entity Framework 6.Обновление существующих объектов в Entity Framework 6-код первого
Мой общий метод обновления выглядит следующим образом:
public virtual void Update(T entity)
{
if (entity == null)
throw new ArgumentNullException("entity");
_context.Entry(entity).State = System.Data.Entity.EntityState.Modified;
_context.SaveChanges();
}
где конструктор:
protected IContext _context;
protected IDbSet<T> _dbset;
public EntityService(IContext context)
{
_context = context;
_dbset = _context.Set<T>();
}
IContext
в основном интерфейс DbContext
.
Теперь при попытке обновления я получаю следующую ошибку;
InnerException = { "Оператор UPDATE в противоречии с ИНОСТРАННОЙ KEY ограничением \" FK_dbo.Appointment_dbo.Driver_DriverID \». конфликта произошел в базе данных \ "DEVDB \", таблица \ "dbo.Driver \" столбец «идентификатор» \ г утверждение \ NThe было прекращено "}
Теперь классы (пониженная для краткости) являются:..
public partial class Appointment : AuditableEntity<int>
{
public override int ID { get; set; }
[ForeignKey("AppointmentType")]
public int AppointmentTypeID { get; set; }
public virtual AppointmentType AppointmentType { get; set; }
[ForeignKey("AppointmentStatus")]
public int AppointmentStatusID { get; set; }
public virtual AppointmentStatus AppointmentStatus { get; set; }
[ForeignKey("Driver")]
public int? DriverID { get; set; }
public virtual Driver Driver { get; set; }
[ForeignKey("Vehicle")]
public int? VehicleID { get; set; }
public virtual Vehicle Vehicle { get; set; }
}
Теперь я попытался пропусканием результат через оба объекта.
i.eID VehicleID = 1 с Vehicle = null, VehicleID = null с Vehicle = VehicleEntity, а также вместе.
Смотрите скриншот примера содержание сущности:
Любые идеи, почему это происходит, пожалуйста?
Вы передаете 'DriverID = 0', что я считаю основной причиной исключения –