Say вы имеете следующую модель,Обновление приложенного записей в Entity Framework 6 без изменения внешних ключей
class Car {
int Id { get; set; }
public virtual List<Passenger> Passengers { get; set; }
}
class Passenger {
int Id { get; set; }
[ForeignKey("Car")]
int CarId { get; set; }
public virtual Car Car { get; set; }
public string Name { get; set; }
}
И вы изменяете имя без Entity Framework загрузки модели, просто зная ID, и не зная Автомобиль - в моем случае также при автоматической загрузке & проверка отключена, так как я работал над огромным набором данных.
Делая так пробеги в ошибку
CarDbContext context = new CarDbContext(); // subclass of DbContext
Passenger passenger = new Passenger();
passenger.Id = 1; // this was sent to you from heaven, or from a URL, or whatever
passenger.Name = "Steve"; // this is your updated variable
context.Attach(passenger);
DbEntityEntry<Passenger> dbEntry = context.Entry(passenger);
dbEntry.Property(e => e.Name).IsModified = true; // we changed the Name, but...
dbEntry.Property(e => e.CarId).IsModified = false; // we didn't change the Foreign Key
context.SaveChanges(); // will still yield an error!
ошибка есть: «Не удалось определить основной конец отношений несколько добавляемые объекты могут иметь один и тот же первичный ключ.»