Писатель базы данных, вероятно, сделал
sql = "SELECT * FROM STUDENTS WHERE (STUDENT_NAME = '" + student_name + "') AND other stuff";
execute(sql);
, Если student_name является одним данным, который делает выбор с именем "Robert" и затем отбрасывает таблицу. "-" часть изменяет остальную часть данного запроса в комментарий.
... лично я переключился на LINQ to XML, когда он был впервые представлен, и никогда не оглядывался назад. Пока не заметил значительного снижения производительности.
Я бы просто использовал LINQ to XML в Silverlight.
Единственное преимущество XmlReader перед LINQ заключается в том, что он не создает DOM в памяти, а скорее перемещается по существующему потоку. Однако эта разница действительно проявляется только в том случае, если вы можете начать обработку потока по мере его поступления, а не ждать прибытия всего контента. Это преимущество довольно сложно реализовать, и оно редко используется.
LINQ to XML гораздо более удобен для запросов и значительно более гибок в использовании, компромисс - дополнительная память.
LINQ to XML проще, однако он требует ссылки в System.XML.Linq, что увеличивает количество сборок, которые нужно будет загрузить в ваше приложение Silverlight. поэтому в зависимости от ситуации и ваших фидов иногда полезно использовать XMLReader.