EF6 создает новую не нужную запись

В этом месте объекту truck присваивается объект trafficcolor.

if (!CheckTruckAssigned(truck.TruckNumber) && !await CheckInactiveStatus(truck.TruckNumber))
{
    truck.TrafficColor = await _ratingService.GetTrafficColor(truck);
    context.Trucks.Add(truck);
    context.SaveChanges();
}   

Помимо создания нового объекта truck, ef6 создает и новый объект trafficcolor я не пойму почему и зачем. Вот метод GetTrafficColor, в нем создаётся отдельный контекст.

public async Task<TrafficColor> GetTrafficColor(Truck truck)
{
    try
    {
        TrafficColor color = null;

        var rating = await GetRatingCache(truck);

        if (rating == null)
        {
            rating = new RatingCache()
            {
                Score = 1,
                DepotCode = truck.DepotCode,
                TMSTruckTypeId = (int)truck.TruckTypeId
            };
        }

        //Рейтинг авто
        int score = await GetTruckRatingAsync(truck.TruckNumber);

        int constant = 100;

        int percent = (score * constant) / rating.Score;

        using (ApplicationDbContext context = new ApplicationDbContext())
        {
            var dev = context.DepotAndAKs.FirstOrDefault(dak => dak.DepotCode == truck.DepotCode);

            int trafficDeviation = dev.PercentDeviation + constant;

            if (percent > trafficDeviation)
            {
                color = context.TrafficColors.FirstOrDefault(tc => tc.Code == "Green" && tc.TMSTruckTypeId == truck.TruckTypeId);
            }
            else if (percent < trafficDeviation)
            {
                color = context.TrafficColors.FirstOrDefault(tc => tc.Code == "Red" && tc.TMSTruckTypeId == truck.TruckTypeId);
            }
            else
            {
                color = context.TrafficColors.FirstOrDefault(tc => tc.Code == "Yellow" && tc.TMSTruckTypeId == truck.TruckTypeId);
            }

        }

        return color;
    }
    catch (Exception ex)
    {
        Log.Write(ex, Config.PathToServer, "Ошибка в GetTrafficColor - " + ex.Message);
        return null;
    }
}

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