[英]Insert JObject list to SQL Server with dapper
我需要將JObject
的結果插入到SQL Database
中。 但是它一直說我不允許插入 arrays,列表?
我究竟做錯了什么?
這是我到目前為止得到的:
JArray jsonArray = JArray.Parse(sb.ToString());
var jsonObjects = jsonArray.OfType<JObject>().ToList();
using (SqlConnection connection = new SqlConnection(connectionstring))
{
connection.Open();
connection.Execute(@"Insert into dbo.JsonMeta values(@meta)", jsonObjects);
}
jsonObjects 的結果:
計數:57000 行
row[0]
看起來像這樣:
{{
"ID": "asdasdasdasdIndenlandsk",
"FLYTTEDATO": "01/02/2020",
"FLYTTE_TIDSPUNKT": "1000",
"R�KKEF�LGE_FLYTNING": null,
"FRA_CHR": "asdasdasdasd",
"TIL_CHR": "asdasdasd",
"ANTAL": "asdasdasdasd",
"ANTAL_CONTAINERE": null,
"INDBERETTER_LOGON": "asdasdasd:assdaasdasd",
"BIL_ANVENDELSE": "FORVOGN",
"REGISTRERINGSNUMMER FORVOGN": "XXXXXX",
"BIL_NATIONALITET FORVOGN": "XXXXX",
"FRAFLYT_NATION": null,
"TILFLYT_NATION": null,
"REGISTRERINGSNUMMER H�NGER": null,
"BIL_NATIONALITET H�NGER": null,
"REGISTRERINGSNUMMER OML�SSER FORVOGN": null,
"BIL_NATIONALITET OML�SSER FORVOGN": null,
"REGISTRERINGSNUMMER OML�SSER H�NGER": null,
"BIL_NATIONALITET OML�SSER H�NGER": null,
"TRACES DOKNR": null,
"SLETMARKERING": "0",
"DATO_OPRET": "2020-06-02 08:33:54",
"BESNR_AFSENDER": "asdasdasdasdasd",
"BESNR_MODTAGER": "asdasdasd",
"BRUGER_AFSENDER_CVR_NR": "sdfsdf324234",
"BRUGER_AFSENDER_NAVN": "asdasdasdasd",
"BRUGER_AFSENDER_ADRESSE": "asdasdasdasd",
"BRUGER_AFSENDER_BYNAVN": "adsasdasd",
"BRUGER_AFSENDER_POSTNR": "adsasdasd",
"BRUGER_AFSENDER_POSTDISTRIKT": "adsasdasd",
"BRUGER_AFSENDER_REKLAMEBESKYTTET": null,
"BRUGER_MODTAGER_CVR_NR": "adasdasdasd",
"BRUGER_MODTAGER_NAVN": "asdasdasdasd",
"BRUGER_MODTAGER_ADRESSE": "adasdasd",
"BRUGER_MODTAGER_BYNAVN": "asdasdasd",
"BRUGER_MODTAGER_POSTNR": "adasdasd",
"BRUGER_MODTAGER_POSTDISTRIKT": "asdasdasd",
"BRUGER_MODTAGER_REKLAMEBESKYTTET": null,
"BESSTR_SOER": "0",
"BESSTR_SLAGTESVIN": "asdasdasdasdasd",
"BESSTR_SMAAGRISE": "0",
"ANTAL_SLAGTESVIN_DAKA": null,
"ANTAL_SOER_DAKA": null,
"PRAKSIS_NR": "asdasdasd",
"PRAKSIS_NAVN": "asdasdasdasdasd",
"PRAKSIS_ADRESSE": "asdasdasdasdasd",
"PRAKSIS_BYNAVN": null,
"PRAKSIS_POSTNR": "asdasdasd",
"PRAKSIS_POSTDISTRIKT": "asdasdasdasdasd"
}}
錯誤:
Exception Type: System.InvalidOperationException
TargetSite: CacheInfo GetCacheInfo(Identity, System.Object, Boolean)
Message: An enumerable sequence of parameters (arrays, lists, etc) is not allowed in this context
Data: System.Collections.ListDictionaryInternal
HelpLink: NULL
Source: Dapper
HResult: -2146233079
這個問題可能需要更多上下文,目前我們不知道您的數據庫是什么或看起來像什么。
例如,您是否使用 MySQL 並嘗試僅將 JSON 存儲為字符串? 或者您是否嘗試將 JSON object 存儲到具有相同列數的表中?
JArray jsonArray = JArray.Parse(sb.ToString());
var sb = new StringBuild("Insert into dbo.JsonMeta values");
for(int i =0; i < jsonArray.Length; i++)
{
sb.AppendLine($"(@meta{i}),");
}
using (SqlConnection connection = new SqlConnection(connectionstring))
{
connection.Open();
connection.Execute(sb.ToString().TrimEnd(','), jsonArray.OfType<JObject>().Select(item => item.ToStirng()).ToArray());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.