HTML   发布时间:2022-04-14  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了entity-framework – 在域驱动设计中为模型属性设置默认值的最佳实践?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在DDD中为新实体设置默认属性的最佳方法是什么?另外,为复杂属性(例如集合)设置默认状态的最佳方法是什么?

我的感觉是默认值应该在模型中,因为它们是业务规则的一种形式(“默认情况下,我们希望x是Y& Z”),域代表业务.使用这种方法,模型本身的静态“GetNew()”方法可能会起作用:

public class Person {
    public String Name { get; set; }
    public datetiR_90_11845@e DateOfBirth { get; set; }
    public bool IsAlive { get; set; }
    public List Limbs { get; set; }

    public static Person GetNew() {
        return new Person() { 
            IsAlive = true,Limbs = new List() { RightArm,LeftArm,RightLeg,LeftLeg }
        }
    }
}
@H_489_5@ 
 

不幸的是,在我们的例子中,我们需要将collection属性设置为另一个列表的所有成员,并且由于此模型与其Repository / DbContext分离,因此它没有任何方法可以将它们全部加载.

Crappy解决方案将作为参数传递:

public static Person GetNew(List<Limb> allLimbs) {
    return new Person() { 
        IsAlive = true,Limbs = allLimbs
    }
}@H_489_5@ 
 

或者,有一些更好的方法来设置简单和简单的默认值.复杂的模型属性?

解决方法

这是 factory pattern in DDD的一个实例.它可以是专用类,如PersonFactory,也可以是静态方法,如示例所示.我更喜欢静态方法,因为我认为不需要创建一个全新的类.

至于初始化集合,我将使用集合作为参数的GetNew方法.它陈述了一个重要的约束 – 创建一个你需要该集合的新人实体.集合实例将由托管特定用例的应用程序服务提供.更一般地,默认值可以存储在数据库中,在这种情况下,应用程序服务将调用存储库以获取所需的值.

大佬总结

以上是大佬教程为你收集整理的entity-framework – 在域驱动设计中为模型属性设置默认值的最佳实践?全部内容,希望文章能够帮你解决entity-framework – 在域驱动设计中为模型属性设置默认值的最佳实践?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。