現在、私はこのような一般的なリポジトリがあります。式<Func <TEntity、bool >>を汎用リポジトリに適用しますか?
public virtual IQueryFluent<TEntity> Query(Expression<Func<TEntity, bool>> query)
{
return new QueryFluent<TEntity>(this, query);
}
をそして、このように実装します。私は一般的な表現を構築したいようRoleIDは、すべてのエンティティに表示されます、ので
var obj = _repository.Query(x => x.RoleID == ID).Select().FirstOrDefault();
このような一般的なリポジトリ:
//Check and get RoleID if exist this column
PropertyInfo info = typeof(TEntity).GetProperty("RoleID");
if (info != null)
Expression<Func<TEntity, bool>> filter = (p => p.RoleID ??? or p.info ??? == 5);
どのように我々は一般的なリポジトリのTEntityからの未知の列でフィルタを構築することができますか?または、Filterのwhere句の文字列を渡すことはできますか?
var obj = _repository.Query().Select().FirstOrDefault();
教えてください:
私の目的は、私はちょうどそのような単純な構造を持つデータを照会する必要がある、ということです。
ありがとうございました。
「IHasRole {int RoleID {get; set;}} 'のようなインタフェースを実装するのがベストでしょう。すべてのエンティティで使用してください。 – Evk
あなたの助けにEvkに感謝します。 –