我有两个应用程序:第一个使用 SqlKata 从数据库中获取数据,然后使用 Newtonsoft 对其进行序列化并将其保存到文件中:
SqlServerCompiler compiler = new SqlServerCompiler();
QueryFactory queryFactory = new QueryFactory(MyConnection,compiler);
var data = queryFactory.Query("tblName").Where("ID",1).First();
string json = JsonConvert.SerializeObject(data);
StreamWriter writer = new ...
writer.write(json);
这工作正常,并使用其中的数据创建 json 文件
第二个应用程序读取 JSON 文件,对其进行反序列化,然后将其添加到数据库中,例如:
using(StreamReader streamReader = new StreamReader(@"C:/MyFile")){
string temp = streamReader.ReadToEnd();
var toInsert = JsonConvert.DeserializeObject(temp);
//note that i dont have a class that represents the structure of the deserialized object,thus i should catch it dynamically
queryFactory.Query("tblName").Insert(toInsert);
}
插入会引发异常:System.Reflection.TargetParameterCountException: 'Parameter Count Mismatch'
知道数据库表是一样的。