Пока он находится на правильном пути, но не дал правильный синтаксис.Посредник используется для загрузки коллекций из текущего средства доступа к данным, а не для создания новых.Таким образом, код будет:
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;
}
Второй параметр - это поле для упорядочения, которое необходимо для выборки с ограничениями, чтобы иметь какой-либо смысл.Надеюсь, это поможет.