Когда вы срезаете многомерность массива, если меньше указателей, чем количество осей, недостающие индексы считаются полными фрагментами. Следовательно, когда вы, по сути дела, выполняете вызов x[:][1]
is x[:,:][1,:]
, поэтому x[:,:]
просто вернет сам x.
Проблема в том, что Expression.NotEqual
здесь:
var parameter = Expression.Parameter(entity.ClrType, "e");
var body = Expression.NotEqual(
Expression.Call(typeof(EF), nameof(EF.Property), new[] { typeof(DateTime?) }, parameter, Expression.Constant("DeletedAt")),
Expression.Constant(null));
modelBuilder.Entity(entity.ClrType).HasQueryFilter(Expression.Lambda(body, parameter));
Что в настоящее время делает, так это устанавливает фильтр глобальных запросов (то есть дополнительное условие применяется к всем запросов) аналогично этому (псевдокод):
e => e.DeletedAt != null
, который будет возвращать все мягкие удаленные записи (которых в вашем случае нет), в то время как я предполагаю, что идея заключалась в том, чтобы возвращать не мягкие удаленные записи, т.е. 1110]
e => e.DeletedAt == null
Так что просто измените Expression.NotEqual
на Expression.Equal
, и проблема будет решена.
Вам нужно создать запрос, чтобы получить конкретную информацию из вашего контекста.
создайте запрос к вашей таблице, используя контекст.
Например.
var query = context.Students
.where(s => s.StudentName == "Bill")
.FirstOrDefault<Student>();
query.tolist ()