1

エンティティをフラット テキスト ファイルで読み書きしたいのですが、膨大な量のデータがあるため、Serlization/Deserialization は適切な解決策ではありません。

テキスト ファイル データ ソース (csv など) を扱うデータ プロバイダーはありますか?

4

4 に答える 4

3

Jet エンジンと組み合わせて 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())
            ...
}
于 2011-08-22T09:07:55.087 に答える
2

ターゲット ファイルの LINQ プロバイダーをいつでも調べることができます。明らかに LINQ to XML が利用可能です。すばやく検索すると、 LINQ to CSVLINQ to Textなどの他のものが得られます。

ただし、あなたが探しているものに関して、彼らがどのようなサポートを提供しているかはわかりません。そのため、私の回答をそのまま受け取るのではなく、それらを確認する必要があります。

于 2011-08-22T08:52:58.530 に答える
0

テキストファイルDataProviderではありませんが...protobufをチェックしてください-http :
//code.google.com/p/protobuf-net/ シリアル化の時間とスペースの消費を減らすために特別に書かれています...

その作者はStackoverflowにいます-MarcGravell

于 2011-08-22T09:23:57.057 に答える
0

SQLite の使用を検討しましたか? それはあなたが望むことをするべきであり、多くのシナリオでかなり高速です。

于 2011-08-22T15:15:25.027 に答える