現在、Linq to Entities を使用して検索を実行している状況があります。
クライアントの参照コードで検索したい場合は、次の方法を使用します。GetClientByReference("A01")
public IQueryable<DataLayer.Client> GetClientByReference(String reference)
{
return new DataLayer.DlClient(this.Entities).GetClientByReference(reference);
}
クライアントの名前で検索したい場合は、次の方法を使用します。GetClientByName("Joe")
public IQueryable<DataLayer.Client> GetClientByName(String name)
{
return new DataLayer.DlClient(this.Entities).GetClientByName(name);
}
明らかに、スケーラビリティに関しては、メソッドを組み合わせて、検索可能なフィールドごとに 1 つ記述する必要があるため ( GetClientByDateAndReferenceAndName
??)、これはかなりひどいものです。これをより汎用的にする方法はありますか?
理想的には、次のようなことができるようになりたいです。
GetClient("Reference", "A01")
GetClient("Name", "Joe")
GetClient("Reference", "A01", "Name", "Joe")