Проблема в том, что 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
, и проблема будет решена.
Вы захотите использовать SignedCms
класс в System.Security.Cryptography.Pkcs
пространство имен.
Эта запись в блоге покажет Вам, как использовать класс:
http://blogs.msdn.com/shawnfa/archive/2006/02/27/539990.aspx
Вы в основном будете звонить Decode
метод, передавая байты, представляющие файл PKCS.