Telerik RadGrid Binding Предполагает, что неверный тип объекта - PullRequest
0 голосов
/ 01 декабря 2010

Мы используем элемент управления RadGrid для извлечения пользовательских объектов из репозитория, который использует NHibernate для извлечения объектов.Я использую источник данных объекта, определенный как:

<asp:ObjectDataSource ID="UsersData" runat="server" SelectMethod="GetAll" DataObjectTypeName="TestingApp.Lib.Domain.User" TypeName="TestingApp.Lib.Repositories.UserRepository">
</asp:ObjectDataSource>

Сигнатура метода для GetAll выглядит следующим образом:

public IEnumerable<User> GetAll();

В NHibernate некоторые пользователи фактически являются администраторами, которые расширяют пользователя.Похоже, что в настоящее время репозиторий сначала возвращает объект AdminUser, а элемент управления, по-видимому, предполагает, что остальные объекты будут AdminUser, а не User.Это вызывает следующее исключение:

"Unable to cast object of type 'TestingApp.Lib.Domain.User' to type 'TestingApp.Lib.Domain.AdminUser'."

Есть ли способ заставить элемент управления предположить, что объекты, связанные с данными, являются User, а не AdminUser?Спасибо!


Последующие действия

Похоже, что RadGrid, используемый с NHibernate таким образом, не совместим и не будет работать.Вместо этого мы решили использовать собственное решение.

1 Ответ

0 голосов
/ 02 декабря 2010

Воспроизведите волшебное свойство MasterTableView.RetrieveDataTypeFromFirstItem, чтобы увидеть, помогает ли это. Я думаю, что в вашем случае должно быть установлено значение false или если установлено значение true, ваш первый элемент в коллекции должен иметь тип User (при условии что AdminUser расширяет класс User).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...