我的目标是创建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>>
)。
根据我的研究,我遇到了两种可能的解决方案:
现在我的问题是,是否有第三种解决方案不需要我更改我的poco类,而是在dbcontext级别进行某种隐藏处理?
如果没有第三种解决方案,那么在两种可用的解决方案中哪一种在性能方面会被认为更好?