この行は、User 型の入力と SoftDeleteEntity 型のチェックを含む 'TypeAs' 式はサポートされていません:
var test = this.partiallyFiltered.Where(additionalFilter).ToList();
これがそこにあるものです。partialFiltered のタイプはIQueriable<User>
です。追加のフィルターのタイプは でExpression<Func<User, bool>>
、渡される実際の式 (デバッガーによる) は!((x as SoftDeleteEntity).IsDeleted)
です。ユーザーは SoftDeleteEntity を継承します。関連する情報が欠落しているとは思いませんが、お知らせいただければ詳しく説明します。どこかで機能しない暗黙のキャストが必要であることは理解していますが、見つかりません。
編集:式の宣言は次のとおりです。すべてのエンティティは IEntity です。
public static Expression<Func<TEntity, bool>> DefaultFilter<TEntity>()
where TEntity : IEntity
{
if (typeof(SoftDeleteEntity).IsAssignableFrom(typeof(TEntity)))
return x => !(x as SoftDeleteEntity).IsDeleted;
else return x => true;
}