Как связать IDataReader c XmlReader для SqlCeBulkCopy?

Рейтинг: 2Ответов: 1Опубликовано: 10.04.2015

Приходят XML большого объема (около 1,5 Гб), мне необходимо перенести информацию из них в таблицу БД (в моем случае SQL CE). Структура XML файла следующая (корневой тег, а в нем множество одинаковых тегов с атрибутами, количество атрибутов около 20), по сути двумерная таблица -

<Objects>
<Object ID="" name="" level="" />
<Object ID="" name="" level="" />

С XML через XmlReader пробую вот так:

XmlReader r = XmlReader.Create("file:////" + PathToFile);
  while (r.Read())
    {
        if ((r.Name == "Object") && (r.HasAttributes))
        {

        }
    }

Но как это связать дальше с IDataREader и SqlCeBulkCopy не могу понять

Библиотека находится здесь

UPDATE

Ответы

▲ 1

Нужно реализовать IDataReader интерфейс, в новом классе

тут детальная реализация для коллекции

public class CustomObjectDataReader : IDataReader
{
  ...
}

Обязательно к реализаций эти свойства и методы, остальные можно вернуть исключение

  • FieldCount
  • GetName
  • GetOrdinal
  • GetValue
  • Read