Мы используем элемент управления 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 таким образом, не совместим и не будет работать.Вместо этого мы решили использовать собственное решение.