Каков правильный способ сохранения графика объектов, состояние которых вы не знаете? По состоянию я имею в виду, являются ли они новыми или существующими элементами базы данных, которые обновляются.
Например, если у меня есть:
public class Person
{
public int Id { get; set; }
public int Name { get; set; }
public virtual ICollection<Automobile> Automobiles { get; set; }
}
public class Automobile
{
public int Id { get; set; }
public int Name { get; set; }
public short Seats { get; set; }
public virtual ICollection<MaintenanceRecord> MaintenanceRecords { get; set ;}
public virtual Person Person { get; set; }
}
public class MaintenanceRecord
{
public int Id { get; set; }
public int AutomobileId { get; set; }
public DateTime DatePerformed { get; set; }
public virtual Automobile Automobile{ get; set; }
}
Я редактирую модели, похожие на эти объекты выше, а затем передаю эти модели в слой данных для сохранения, где для этого экземпляра я использую сущность framework. Поэтому я переводил эти модели в объекты POCO, внутренние для DAL.
Похоже, что если мои модели не имеют состояния, указывающего, являются ли они новыми или обновленными, у меня есть довольно много работы, чтобы сделать "Сохранить" изменения. Я должен сначала выбрать объект Person, обновить его, а затем сопоставить любые существующие автомобили и обновить их, а также добавить новые, а затем для каждой проверки автомобиля для любых новых или обновленных записей технического обслуживания.
Есть ли более быстрый/простой способ сделать это? Возможно, я могу отслеживать состояние модели, что, я думаю, было бы полезно с этим, но это означало бы изменения кода вне уровня данных, который я бы предпочел избежать. Я просто надеюсь, что есть образец использования там, где я могу следить за обновлениями, подобными этому.