У меня есть запрос, чтобы получить все записи, где два разных столбца начинаются с одного и того же символа:
var query = _db.Projects.AsQueryable();
query = query.Where(p => p.InternalOrder.StartsWith("G") || p.CostCenter.StartsWith("G"));
var list = query.toList();
Это всегда заканчивается исключением. Когда я изменяю запрос так, чтобы запрашивался только один столбец, все работает нормально:
var query = _db.Projects.AsQueryable();
query = query.Where(p => p.InternalOrder.StartsWith("G") || p.InternalOrder.StartsWith("G"));
var list = query.toList();
Это ошибка или просто невозможно?
EDIT:
Вот исключение; ничего не говорит мне:
System.NullReferenceException: Object reference not set to an instance of an object.
at lambda_method(Closure , Project )
at System.Linq.Enumerable.WhereEnumerableIterator`1.ToArray()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.OrderedEnumerable`1.GetEnumerator()+MoveNext()
at System.Linq.Enumerable.SelectIPartitionIterator`2.MoveNext()
at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider._TrackEntities[TOut,TIn](IEnumerable`1 results, QueryContext queryContext, IList`1 entityTrackingInfos, IList`1 entityAccessors)+MoveNext()
at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.ExceptionInterceptor`1.EnumeratorExceptionInterceptor.MoveNext()
at System.Collections.Generic.List`1.AddEnumerable(IEnumerable`1 enumerable)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at BMP_App.Controllers.Api.ProjectController.GetProjectList(DataSourceRequest request) in D:\...\Controllers\Api\ProjectController.cs:line 72
EDIT2:
Это происходит только при использовании базы данных в памяти. Нет проблем при использовании Sql-Server.