0

我正在为预先存在的应用程序构建实体框架数据上下文。由于这个应用程序有一组非常干净的 POCO 来定义域模型,我选择使用 EF 的 Code First 从这些类生成数据库,这样我们就不必维护两个单独的模型;理论上,数据库将被迁移以匹配我们对 POCO 所做的任何事情,只是在OnModelCreating()覆盖中偶尔需要一些映射。

我的问题是其中一个域类具有Dictionary<string, object>用于存储状态数据的类型属性(正在从其他地方的键值存储中读取,所以我们坚持使用这种格式)。我的第一个想法是我们可以只应用[NotMapped]这个属性,然后创建一个string属性,其中 getter 和 setter 只是将其序列化/反序列化为DictionaryXML、JSON 或其他。

问题是我们没有用特定于数据库的东西来改变域类,所以我必须从数据访问程序集中完成所有这些工作。我知道如何NotMapped在 Fluent Configuration API 中应用该属性,但我不知道如何为序列化参数设置列。在模型上,它看起来像这样:

[NotMapped]
public IDictionary<string, object> Parameters { get; set; }
public string JSONParameters
{
    get
    {
        return JsonConvert.SerializeObject(Parameters);
    }
    set
    {
        Parameters = JsonConvert.DeserializeObject<Dictionary<string, object>>(value);
    }
}

我将如何在 Fluent Configuration API 中编写等效代码?甚至可能吗?

4

0 回答 0