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 это делает, что не так?