gpt4 book ai didi

c# - Entity Framework 工作单元生命周期

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

我正在尝试学习 Entity Framework 和相关模式。在搜索时我发现了这个网站:http://www.asp.net/mvc...

我检查了模式,但我无法理解一点。根据我的调查,dbcontex 的生命周期应该非常短,因为它有内存中的对象模型,这些更改应该尽快保存到数据库中。否则,多用户场景下会出现冲突。

当我查看上面的教程时,我发现对于每个 Controller 都只定义了一个 uow。我想知道这是否意味着只要我在站点的一页上执行 CRUD 操作,我就会使用相同的 dbcontext。但是它的生命周期不应该更短吗?例如,可以为每个 Action 定义一个 uow。

谁能解释一下 uow 的生命周期?

最佳答案

DbContext 定义为私有(private)类变量与将其定义为局部变量应该没有任何区别。

每次创建 HTTP 请求时,都会初始化 Controller (以及它的任何类变量)并调用操作。 Controller 的实例不会在不同的请求之间持续存在,DbContext 的任何实例也不会。

查看这篇关于 why you don't have to worry about the lifetime of a DbContext 的文章.

编辑

在我发布这个答案几天后,我意识到了一个警告,如果我没有更新它,我会感到内疚。

如果每个操作都使用您的 DbContext,则上述陈述为真。但是,如果只有少数操作使用它,则最好改用局部范围的 DbContext。这将防止在您调用不需要使用它的操作时不必要地创建 DbContext 类变量。这会让你的代码更有效率吗?是的 - 但微不足道 - 每次你想使用它时你都必须实例化一个 DbContext ,这将导致稍微比只有一个类更困惑的代码 -变量在顶部。

关于c# - Entity Framework 工作单元生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31225907/

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