EF Core, добавление во время обновления

Есть модель:

public class TruckDoc
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Number { get; set; }
    public DateTime Date { get; set; }
    public DateTime Created { get; set; }
    public string LastNameCarrier { get; set; }
    public string NameOfDeliverySendler { get; set; }
    public string NameOfDeliveryRecipient { get; set; }
    public string TruckNumber { get; set; }
    public string TrailerNumber { get; set; }
    public List<TruckDocPoint> Points { get; set; }
    public Visit Visit { get; set; }
    public TruckDoc()
    {
        Points = new List<TruckDocPoint>();
    }

}  

Метод контроллера, в которой приходит POST запрос с этой же моделью:

public async Task<string> CreateTruckDoc(TruckDoc model)
{
    string json = "";

    if (model.Id > 0)
    {
        _context.TruckDocs.Attach(model);
        _context.Update(model);
    }
    else
    {
        _context.Attach(model.Visit);
        await _context.AddAsync(model);
    }

    await _context.SaveChangesAsync();
    
    return json;
}  

Обновление происходит успешно, но создается новая сущность Visit не смотря на то что в моделе передаётся связь. То есть, в POST запросе model.Visit.Id = 1045, после Save создается в таблице Visits новая запись с Id = 1046, связь с текущей обновляемой записью естественно теряется. Делать attach(model.Visit) пробовал, не помогает. Вопрос, зачем EF это делает, что не так?


Ответы (0 шт):