Asp.Net Core AutomapperLINQ式

alexvilla

現在ASP.NETCoreを使用しており、Automapperを使用してLinq式をマップしたいと考えています。マッピングステートメントは次のとおりです。

var targetConditions = _mapper.Map<Expression<Func<Entity, bool>>>(filter);

ここで、filterは次の形式の仮パラメーターです。

(Expression<Func<EntityDTO, bool>> filter

マッピングプロファイルで、次のマップを作成しました。

CreateMap<Expression<Func<EntityDTO, bool>>, Expression<Func<Entity, bool>>>();

EFで汎用リポジトリパターンを使用しています。もちろん、コントローラーからDTOのフィールドでフィルター処理されたDTOのリストを取得したいと思います。次に、Linq for EFを使用してクエリを実行する前に、ビジネスレイヤーでDTOフィルターからエンティティフィルターに変換する必要があります。

式はEntityDTOからEntityにカバーされますが、内部のラムダ式のパラメーターはカバーされないため、EFでさらに使用すると、あらゆる種類のエラーが発生します。これをどのように行うことができますか?

Yaser Moradi

これを試して:

IQueryable<Customer> query = repository.getCustomers(); // entities query
query.ProjectTo<CustomerDto>().Where(dtoFilterExpression)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事