1

ここで一般的なリポジトリパターンを見てきました。関数の呼び出しから引数として送信したい汎用select句を追加しようとしています。変更しました

public T GetSingle(Expression<Func<filter, bool>> filter) to 
public T GetSingle(Expression<Func<filter, bool>> filter,Expression<Func<T, T>> Selct)

ここで、このメソッドを呼び出します。選択した式をどのように送信すればよいですか

return rep.GetSingle(p => p.Slug == slug,???)
4

2 に答える 2

3

現在、メソッドは結果タイプを変更できません。それはあなたが望んでいることではないと思います。私はあなたがあなたの方法が一般的であることを望むだろうと思うでしょう、例えば

public TResult GetSingle<TResult>(Expression<Func<T, bool>> filter,
                                  Expression<Func<T, TResult>> projection)

次に、次のように呼び出します。

// The type argument is inferred from the second lambda expression
string x = repository.GetSingle(p => p.Slug == slug, p => p.FirstName);
于 2012-06-27T05:48:50.310 に答える
0

メソッドの 2 番目の引数は、入力が T であり、T を返す必要がある別のラムダでなければなりません。

于 2012-06-27T05:44:35.850 に答える