我有两个应用程序: 第一个使用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:'参数计数 不匹配”
知道数据库表是相同的。
答案 0 :(得分:1)
如果您没有课程,则可以使用动态类型。动态类型在编译时转义了类型检查;而是在运行时解析类型。
尝试一下:
var toInsert = JsonConvert.DeserializeObject<dynamic>(temp);