【发布时间】:2026-01-28 12:15:03
【问题描述】:
我有一个 REST API 服务,它需要验证任何类型的用户(例如 Windows 用户)并将对它的引用添加到数据库表中以供以后使用。
为此,我需要知道 Entity Framework Core 中的当前用户,因为用户被存储为实体的创建者。
我正在尝试从 DbContext 中抽象出当前用户在 SaveChanges 方法中的耦合,其中在创建实体时用户正在耦合。
但是如何获取DbContext中的当前用户呢?我正在尝试使用委托,但我陷入了 DI 需要注册 UserService 的方式,该 UserService 抽象了用户并返回了 ID。
【问题讨论】:
-
通常应用程序不会在数据库中创建单个用户,而是为服务/应用程序使用共享连接字符串,在这种情况下,数据库的用户不是你想要的,而是你想要的用户应用程序。所以你不再处于 ef 核心效果区,那么你有没有在数据库中单独创建用户?
-
@T.Nielsen 我不想拥有数据库的用户,而是外部用户,这就是为什么我需要某种委托才能在 DbContext 中获取它,因为 DbContext 没有需要知道用户来自哪里。
-
一些代码可能有助于阐明您想要做什么。我所了解的是,您希望将用户与 DbContext 的未知来源(连接字符串?)分离,但您不能,因为您的 UserService 以某种无济于事的方式注册,并且您在创建时需要用户 ID DbContext...我不明白。
标签: c# design-patterns architecture entity-framework-core