ObjectDataSource - Могут ли ваши методы загрузки находиться в другом классе, чем объект? - PullRequest
1 голос
/ 21 сентября 2011

У меня есть следующая модель класса:

public class Person
{
  public string Name;
  public int Age;
}

public class PersonService
{
  public List<Person> GetAll() {...}
}

Я отображаю данные на веб-странице ASP.Net, привязывая ObjectDataSource (ODS) к GridView.

ЕслиЯ указываю «ODS.TypeName = PersonService», тогда он дает «Объект не соответствует типу цели».ошибка при загрузке данных.

Если я укажу 'ODS.TypeName = Person', то он не сможет найти метод GetAll () для загрузки данных.

Возможно ли связать ODSк этой модели (т. е. отдельные классы для метода и типа)?

Редактировать: Я дважды проверил правильность имен методов и типов (и их полное определение).Я сделал отдельный быстрый тестовый проект, чтобы доказать, что ODS работает с вышеуказанной моделью.Единственное отличие сейчас в том, что в сломанном проекте используется объект, определенный в EF 4.1, - это вызовет проблему?

Ответы [ 3 ]

2 голосов
/ 21 сентября 2011

TypeName должно быть установлено на PersonService в вашем примере. Нет необходимости предоставлять ODS точный тип объекта, привязанного к строкам сетки (Person в вашем примере), так как ни привязка данных ASP.NET, ни ODS / grid на самом деле не будут заботиться. Что касается вашей ошибки, попробуйте полностью квалифицировать услугу, например, My.Namespace.PersonService, и убедитесь, что соответственно установлены SelectMethod в ODS.

0 голосов
/ 23 ноября 2017

введите описание изображения здесь

Просто щелкните правой кнопкой мыши свой проект и выберите «Отключить загрузку облегченного решения» это будет работать. нет другой проблемы

0 голосов
/ 21 сентября 2011

Я думаю, вы хотите создать класс PersonList, который предоставляет список объекта Person и в котором есть метод, использующий PersonService для заполнения / возврата списка.

...