微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

EF Core 并在加载后保持默认的初始化值

如何解决EF Core 并在加载后保持默认的初始化值

在我的域模型中,我有一个属性类型 Property<T>,它旁边有一个 Value 和一个 DefaultValue:

public class Property<T> : Entity
{
    public Property(T defaultValue)
    {
        DefaultValue = defaultValue;
        Value = defaultValue;
    }

    public T DefaultValue { get; }

    public T Value { get; set; }
}

我喜欢使用认初始化来设置使用该属性类型时的认值:

public class Device : Entity<Guid>
{
    public Property<double> Calibration { get; } = new Property<double>(5.0);
}

我想使用 EF Core 在数据库中保存校准属性的值,并且我还想保留认值,因为它来自认初始化。

问题:我是否需要将 DefaultValue 也保存在数据库中,或者我可以告诉 EF Core 在对实体类型的存储库执行 Get() 调用时以某种方式从认构造的对象中使用它设备?

当只需要存储 Value 时(并且 DefaultValue 来自类型定义),这将为我节省将完整属性作为实体存储在数据库中的“努力”。 使用 ValueConverter 仅保存 Calibration 属性的值就可以了。

在我将域对象映射到实体之前,但现在我尝试合并它们以摆脱中间的自动映射步骤。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。