创建独立于ORM的POCO类

时间:2018-02-22 12:11:14

标签: c# orm poco

我的目标是创建poco类,而不知道将使用哪个ORM。

现在观察以下代码......

public class NeuralModel
{
    public NeuralModel()
    {
        Configurations = new HashSet<NeuralModelConfiguration>();
    }

    public int Id { get; set; }
    public string Name { get; set; }
    public DateTime? LastTrained { get; set; }
    //Navigation properties
    public ICollection<NeuralModelConfiguration> Configurations { get; set; }
    //NotMapped properties
    [NotMapped]
    public NeuralModelConfiguration DefaultConfiguration { get { return Configurations.SingleOrDefault(config => config.IsDefault); } }
    [NotMapped]
    public bool IsTrained { get { return LastTrained.HasValue; } }
}

public class NeuralModelConfiguration
{
    public NeuralModelConfiguration()
    {
        KeyValues = new HashSet<KeyValuePair<string, string>>();
    }

    public int Id { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public bool IsDefault { get; set; }
    public ICollection<KeyValuePair<string, string>> KeyValues
    public int ModelId { get; set; }
    //Navigation properties
    public NeuralModel Model { get; set; }
}

现在假设我使用实体框架核心,我遇到了映射复杂类型的问题(在我的示例中它将是ICollection<KeyValuePair<string, string>>)。

根据我的研究,我遇到了两种可能的解决方案:

  1. 序列化
  2. 另一个实体
  3. 现在我的问题是,是否有第三种解决方案不需要我更改我的poco类,而是在dbcontext级别进行某种隐藏处理?

    如果没有第三种解决方案,那么在两种可用的解决方案中哪一种在性能方面会被认为更好?

0 个答案:

没有答案