gpt4 book ai didi

c# - .Net Core 服务架构、 Entity Framework 和职责

转载 作者:太空宇宙 更新时间:2023-11-03 14:50:15 25 4
gpt4 key购买 nike

<分区>

我正在从事一个使用 angular + net core 2.1 和 entity framework core 的项目。

在我的后端我有这样的结构:

FooController -> FooService -> FooRepository -> FooEFContext

Controller 仅将请求路由到正确的服务。

服务了解事物运作方式的业务逻辑。

存储库抽象 EF。

EFContext 访问数据。

现在,假设我有两个这样的实体:

Employee n...1 Company(一家公司可能有 n 名员工,而 emply 只有 1 家公司)

现在假设我想更新特定员工的公司数据:

public void Post([FromBody]Company newData) {
var user = _userService.GetUser( // id of current logged user );
...
// Get the company associated with the user
...
_companyService.Update(company)
}

我应该如何获得公司?我有两个选择:

_userService.GetUser(..) 返回用户以及关联实体的所有详细信息(公司、位置、.. 其他)

_userService.GetUser(..) 只返回用户信息,不包括所有详细信息,然后我调用:

_companyService.GetCompany( user.companyId)

在第一种情况下,我的服务中可能必须有 2 种不同的方法:一种仅获取用户数据,另一种获取用户数据以及所有关联实体的所有详细信息。

在第二种情况下,我对数据库进行了两次往返,但我对每个服务都保持更严格的“单一责任”概念。

您认为哪种方法更好?有什么我想念的吗?

非常感谢:)

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com