Мы преобразуем проект из EF в EF Core.У нас есть следующая строка кода, которая работала, но сейчас не работает:
// throws NullReferenceException
var u = db.Users.FirstOrDefault(x => x.PresenterID.Equals(uid, StringComparison.OrdinalIgnoreCase));
Однако, если мы не используем перегрузку StringComparison
, она работает:
// this works
var u = db.Users.FirstOrDefault(x => x.PresenterID.Equals(uid));
Это большой проект, и мы хотели бы избежать поиска и изменения всего кода, который выполняет такие сравнения.Почему это вызывает исключение NullReferencException и его можно избежать без изменения нашего кода?Вот трассировка стека.Спасибо.
в lambda_method (закрытие, пользователь) в System.Linq.Enumerable.WhereEnumerableIterator 1.MoveNext() at
System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable
1 источник)
в Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.ResultEnume2.MoveNext () в Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.ExceptionInterceptor 1.EnumeratorExceptionInterceptor.MoveNext()
at System.Linq.Enumerable.First[TSource](IEnumerable
1 источник) в Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler. <> C__DisplayClass15_1`1.Conxt. Qject.Service.ContractsFolderService.ValidateContractUsers (BIContract xmlContract, IDataContext db) в C: \ Projects \ Out.Project \ Main \ Service \ ContractsFolderService.cs: строка 436