EF Core странное поведение - PullRequest
       1

EF Core странное поведение

0 голосов
/ 19 февраля 2020

Сначала я использую код EF Core 3.0. У меня есть это l oop:

foreach (var profileCount in quantity)
{
    //here I get the exception:
    var oldItem = dc.Stock.Items.FirstOrDefault(a => a.Profile.Id == profileCount.Key); 

    if (oldItem == null)
    {
        dc.Stock.Items.Add(new Item
        {
            Price = 0,
            ProfileId = profileCount.Key,
            Quantity = profileCount.Value,
            WasChanged = false
        });
    }
}

Stock.Items пусто (не ноль). Первая итерация работает нормально, на второй я получаю

System.NullReferenceException: ссылка на объект не установлена ​​на экземпляр объекта.

Я думаю, это потому, что я добавляю и пытаюсь читать из той же коллекции, но я не уверен, почему именно это происходит.

1 Ответ

1 голос
/ 19 февраля 2020

Когда вы вставляете свой первый элемент (dc.Stock.Items.Add(new Item), вы не добавляете Profile, поэтому на следующей итерации a.Profile.Id будет NullReferenceException.

Либо назначьте Profile когда вы добавляете новый элемент или проверяете на ноль в вашем FirstOrDefault.

...