Текстовый файл DataProvider в .NET - PullRequest
1 голос
/ 22 августа 2011

Я хочу читать / записывать свои сущности в виде простого текстового файла, и из-за огромного объема данных серизация / десериализация не является правильным решением.

Существует ли какой-либо поставщик данных для работы с источником данных текстового файла(как CSV, ...)?

Ответы [ 4 ]

3 голосов
/ 22 августа 2011

Вы можете использовать OleDB в сочетании с реактивным двигателем:

using (var connection = new OleDbConnection(
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"" + directoryPath 
    + "\";Extended Properties='text;HDR=Yes;FMT=Delimited(,)';"))
using (var command = new OleDbCommand(
    "SELECT * FROM [" + fileName + "]", connection))
{
    connection.Open();
    using (var reader = command.ExecuteReader())
        while (reader.Read())
            ...
}
2 голосов
/ 22 августа 2011

Вы всегда можете обратиться к поставщику LINQ для целевого файла, очевидно, LINQ to XML доступен.Быстрый поиск приводит к другим вещам, таким как LINQ to CSV и LINQ to Text .

Однако я не знаю, какую поддержку они оказывают в отношении того, что выищите, поэтому вам придется просмотреть их и не принимать мой ответ дословно.

0 голосов
/ 22 августа 2011

Рассматривали ли вы использование SQLite? Он должен делать то, что вы хотите, и довольно быстро во многих сценариях.

0 голосов
/ 22 августа 2011

хотя и не DataProvider текстового файла ... проверьте protobuf out - http://code.google.com/p/protobuf-net/
Это написано специально, чтобы сделать сериализацию менее затратной по времени + занимающей много места ...

Его автор здесь, на Stackoverflow - Марк Гравелл

...