Ошибка EntityFramework при срабатывании SaveChangesAsync () - PullRequest
0 голосов
/ 02 мая 2019

Установлена ​​ошибка

Проверка не удалась для одного или нескольких объектов.См. Свойство EntityValidationErrors для более подробной информации.

, когда я запускаю функцию SaveChangesAsync().Смотрите мой код ниже:

using (var context = new CommonDBContext()) {
    var bbrs = await context.Table1
        .ToListAsync();

    var lastIndexToRemove = pimc.Result.IndexOf("UIX/");
    if (lastIndexToRemove > -1)
    {
        bbrPimcStr = pimc.Result.Remove(0, lastIndexToRemove);
    }

    foreach (var bbr in bbrs) {
        bbr.XBBR = xbbrStr;
        bbr.LastUpdated = DateTime.Now;
        bbr.LastUpdatedBy = userId;

        if (!pimc.HasError)
        {
            var graveDKI = context.graveDKIStore
                .Where(x => x.RefId == bbr.Id)
                .FirstOrDefault();

            if (graveDKI != null)
                graveDKI.GraveDKI = bbrPimcStr ;
            else
                context.graveDKIStore.Add(new graveDKIStore
                {
                    Id = Guid.NewGuid(),
                    GraveDKI = bbrPimcStr ,
                    RefId = bbr.Id,
                    MsgType = "PPIXFFT"
                });
        }
    }
    return await context.SaveChangesAsync(); // Got issue here

Может кто-нибудь сказать мне, что не так с моим кодом?спасибо.

Обновление: Добавлен стек исключений.Error Stack

1 Ответ

0 голосов
/ 02 мая 2019

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

public class GraveDKIStore {
...
[MaxLength(5)] // The issue is here so I changed it to 10.
public string MsgType { get; set; }
...
}

enter image description here

P.S. спасибо Роману Доскочу за очень полезный совет.

...