public void LogAdd(string processName, T item, List<T> items)
{
try
{
LogInfo entity = new LogInfo();
entity.ProcessName = processName;
if (item != null)
entity.Data = new JsonSerializer().Serialize(item);
else if(items.Count!=0)
entity.Data = new JsonSerializer().Serialize(items);
entity.CreateDate = System.DateTime.Now;
Context.Set<LogInfo>().Add(entity);
Context.SaveChanges();
}
catch (Exception exp)
{
}
}
但entity.Data = new JsonSerializer().Serialize(item);
抛出异常。例外是:
&#34;未处理的类型&#39; System.StackOverflowException&#39;发生在未知模块中。&#34;
我想将数据库表变量转换为json?或者其他解决方案。
答案 0 :(得分:0)
您可以使用Newtonsoft的JsonConvert.SerializeObject
public void LogAdd(string processName, T item, List<T> items)
{
try
{
LogInfo entity = new LogInfo();
entity.ProcessName = processName;
if (item != null)
entity.Data = JsonConvert.SerializeObject(item);
else if(items.Count!=0)
entity.Data = JsonConvert.SerializeObject(items);
entity.CreateDate = System.DateTime.Now;
Context.Set<LogInfo>().Add(entity);
Context.SaveChanges();
}
catch (Exception exp)
{
}
}