1

我有一个包含 JSON 字符串的模型,并希望保留已解析的 JSON.NET 对象以备不时之需,以防止不必要的重新解析。

例如

public class JsonData {
  public Guid Id { get; set; }
  public string Json { get; set; }
}

我想在其中保留一个 JObject,如果可能的话,在 Json 字符串的集合上重新解析它。我不想将它存储在数据库中。然而,当我写这篇文章时,它只是感觉不对......

携带相同“数据”(视图?)的对象的好方法是什么,只是在模型顶部序列化?

4

1 回答 1

1

我不确定这是否是您的意思,但是您可以将[NotMapped]注释添加到您只想在代码中使用而不是存储在数据库中的 POCO 属性中;

public class MyPoco {

    public Guid Id { get; set; }
    public string MyName { get; set; }

    [NotMapped]
    public string ThisObjectCachedAsJson { get; set; }

}

一个更完整的 Json 缓存需求示例,但偏离了 POCO 领域;

public class MyPoco {

    private Guid _id;
    private string _myName;
    private string _jsonCache;

    public Guid Id { 
        get { return _id; } 
        set { _jsonCache = null; _id = value; }
    }

    public string MyName { 
        get { return _myName; } 
        set { _jsonCache = null; _myName = value; }
    }

    [NotMapped]
    public string ThisObjectCachedAsJson { 
        get { 
            if(_jsonCache == null) 
                _jsonCache = <generate json>; 
            return _jsonCache; 
        }
    }
}

您应该能够使用 getter 创建一个基类,然后在其中调用一个方法将 _jsonCache 设置为 null。这会让你的课程更干净一些。

于 2013-01-26T16:06:48.660 回答