存储库基本日志

时间:2016-10-19 10:28:27

标签: c# database logging base

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?或者其他解决方案。

1 个答案:

答案 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)
    {

    }
}