ティルは正しい軌道に乗っていますが、正しい構文を示していません。ブローカは、新しいデータ アクセサを作成するためではなく、現在のデータ アクセサからコレクションをロードするために使用されます。したがって、コードは次のようになります。
public IEnumerable<Customer> FindCustomers(string partialCustomerName)
{
if (string.IsNullOrEmpty(partialCustomerName))
throw new ArgumentException("partialCustomerName must be at least one character long");
var criteria = Criteria.Create<Customer, string>(cust => cust.CustomerName, Criteria.ComparisonOp.Like, partialCustomerName + "%");
int totalRecords;
var col = new BusinessObjectCollection<Customer>();
col.LoadWithLimit(criteria, "CustomerName", 0, 20, ref totalRecords);
return col;
}
それはそれを行う必要があります!私ではなくティルに答えを与えてください。彼は最も多くの研究をしました。構文を修正しただけです:)
編集:醜いAPIに関する以下のコメントの後、私はそれをよりきれいに見せるために提案された変更をメソッドに含めます(あなたの提案@GloryDevに感謝します):
public IEnumerable<Customer> FindCustomers(string partialCustomerName)
{
if (string.IsNullOrEmpty(partialCustomerName))
throw new ArgumentException("partialCustomerName must be at least one character long");
var col = new BusinessObjectCollection<Customer>();
col.LoadWithLimit("CustomerName Like " + partialCustomerName + "%", "CustomerName", 20);
return col;
}
2 番目のパラメーターは、順序付けの基準となるフィールドです。これは、制限のあるフェッチを意味のあるものにするために必要です。お役に立てれば。