Я пытаюсь вставить список объектов в таблицу , используя SqlBulkCopy . Когда код попал в строку
var columnNames = ((Dictionary<string, object>)bData[0]).Select(x => x.Key).ToList();'
, я получил:
'Невозможно привести объект типа' Newtonsoft.Json.Linq.JObject 'к типу' System.Collections. Generic.Dictionary`2 [System.String, System.Object] '' ошибка.
Не могли бы вы мне помочь?
public Int64 PostBulkMessage(List<object> bData)
{
DataTable dt = new DataTable();
var columnNames = ((Dictionary<string, object>)bData[0]).Select(x => x.Key).ToList();
for (int i = 0; i < columnNames.Count(); i++)
{
dt.Columns.Add(columnNames[i]);
}
foreach (Dictionary<string, object> customer in bData)
{
DataRow dr = dt.NewRow();
for (int i = 0; i < columnNames.Count(); i++)
{
dr[columnNames[i]] = customer[columnNames[i]];
}
dt.Rows.Add(dr);
}
if (dt.Rows.Count > 0)
{
string consString = ConfigurationManager.ConnectionStrings["ConnEntities"].ConnectionString;
using (SqlConnection con = new SqlConnection(consString))
{
using (SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(con))
{
//Set the database table name.
sqlBulkCopy.DestinationTableName = "dbo.BulkSent";
con.Open();
sqlBulkCopy.WriteToServer(dt);
con.Close();
}
}
}
return 0;
}