EF Core DDD 最佳实践

EF Core DDD best practice

我正在尝试使用 DDD 方法重构一些代码。我对应该在哪里调用服务来获取创建对象时需要的值有些困惑。

例如创建新用户时,我需要先在Firebase中创建用户,获取id,然后将用户存储在我们自己的数据库中。我有一个像这样的重载用户构造函数:

public User(string displayName, string email, FirebaseService firebase, Role role)
{
   var uid = firebase.CreateUserAsync(...).Result;
   // Set private properties
   FirebaseId = uid;
   Email = email;
   ....
}

我不确定这是否是正确的方法。向构造函数注入服务感觉不对,也不能等待构造函数中的异步方法。只是想检查是否还有其他选择...

提前致谢!

我最终在域实体上使用了一个静态函数,它以 firebase api obj 作为参数,并调用 firebase 在那里创建用户,然后存储将用户 ID 传递给构造函数。

不理想,但认为这比在用户构造函数中直接调用 firebase 更好。