我有一个包含JSON字符串的模型,并且希望保留解析的JSON.NET对象以防止不必要的重新解析。
例如
public class JsonData {
public Guid Id { get; set; }
public string Json { get; set; }
}
我想在那里保留一个JObject,如果可能的话,在Json字符串的集合上重新解析它。我不想将它存储在数据库中。但是,当我写这篇文章时,它只是感觉不对 ......
携带一个与“数据”相同的对象(视图?)的好方法是什么,只是在模型上序列化?
答案 0 :(得分: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。那会让你的课程变得更清洁。