У меня есть отчет rdlc, который принимает в качестве источника данных ReportDataSource List<BaseClass>
.
BaseClass
имеет два производных класса A
и B
.
В отчете я группирую на основе свойства базового класса. Пока список содержит только объекты A
или B
, все работает нормально. Однако, если я смешиваю экземпляры из A
и B
, создание отчета завершается неудачно со следующим сообщением:
Выражение группы, используемое в группировке «[Имя группы]», ссылается на поле набора данных, содержащее ошибку: FieldValueException
Свойство возвращает для обоих классов простой строковый литерал, поддерживаемый константой классов, в этом нет ничего плохого. Я также проверил все остальные используемые свойства, но с ними все в порядке.
Кто-нибудь еще видел такое поведение или у кого-то есть объяснение этому поведению? Мне кажется, что средство просмотра отчетов не любит полиморфизм! Может ли это быть?
Пример * * тысяча двадцать-один
public abstract class BaseClass{
public abstract string GroupKey{get;}
}
public class A : BaseClass{
public override string GroupKey{
get{
return ...
}
}
}
public class B : BaseClass{
public override string GroupKey{
get{
return ...
}
}
}