EF Core DDD 最佳实践

发布于 2025-01-13 02:50:52 字数 469 浏览 1 评论 0原文

我正在尝试使用 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;
   ....
}

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

提前致谢!

I'm trying to refactor some code using DDD approach. I'm a bit confused about where I should call a service to get some value, which is needed when creating the object.

E.g. when creating new user, I need to first create the user in Firebase, get the id, then store the user on our own database. I have an overloaded user constructor like this:

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

I'm not sure if this is the right approach. It just feels wrong to inject a service to the constructor, also can't await on an async method in constructor. Just like to check if there are other options...

Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

淡忘如思 2025-01-20 02:50:52

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

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

I ended up using a static function on the domain entity, which has firebase api obj as a parameter, and calling firebase to create the user there, then storing passing the user id to the constructor.

Not ideal, but think this is better than calling firebase directly in the user constructor.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文