将无状态属性添加到实体框架5首先编码POCO模型

时间:2013-01-26 15:56:31

标签: entity-framework

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

例如

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

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

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

1 个答案:

答案 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。那会让你的课程变得更清洁。