1
私が最終的にやろうとしているのは、辞書の値をデータベースに一括して挿入することです。ここでディクショナリでLINQクエリをネストされたオブジェクトで使用するにはどうすればよいですか?
は私の辞書がセットアップである方法です:私は最終的に、これやりたい
public class Record
{
public int ValueNumber;
public string ValueString;
public byte[] ValueBinary;
public DateTime ValueDateTime;
}
public Dictionary<string, Record> Elements = new Dictionary<string, Record>();
:
public class SqlBulkUtilities
{
public static void BulkInsertDataTable(string connectionString, string tableName, DataTable table)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlBulkCopy bulkCopy =
new SqlBulkCopy
(
connection,
SqlBulkCopyOptions.TableLock |
SqlBulkCopyOptions.FireTriggers |
SqlBulkCopyOptions.UseInternalTransaction,
null
);
bulkCopy.DestinationTableName = tableName;
connection.Open();
bulkCopy.WriteToServer(table);
connection.Close();
}
}
}
何:ここ
IEnumerable<DataRow> query = Elements.AsEnumerable();
// Create a table from the query.
DataTable dt = query.CopyToDataTable<DataRow>();
// Insert into database
SqlBulkUtilities.BulkInsertDataTable(ConnectionString, "Orders", dt);
は私SqlBulkUtilitiesは、次のようになりますDataTableの各DataRowは次のようになります。
key、ValueNumber、ValueString、ValueBinary、ValueDateTime
ここで、「key」は辞書内の各エントリのキーです。
「レコード」オブジェクトに「キー」があった場合、問題はありません。しかし、そうではありません。