gpt4 book ai didi

c# - 我应该将我的 EF DBContext 对象保存在它自己的模块中,然后通过 DI 获取它吗?

转载 作者:行者123 更新时间:2023-11-30 20:29:10 28 4
gpt4 key购买 nike

<分区>

我目前正在处理从 SQL 服务器到我的 C# WPF 应用程序的数据。我正在使用 Prism 和 Entity Framework 来获取我的 DBContext(如果重要的话,使用数据库第一代)。我有一个不断发展的项目,我将同时通过来自不同项目的许多不同屏幕连接到该服务器。

最初,我只是为每个 ViewModel 创建了一个新的 DBContext 对象,但我觉得这不是正确的做法,因为我在网上阅读了不同的上下文实例,却不知道彼此之间的变化。

现在,我正在使用 DI 将同一个 DBContext 的静态实例引入到任何屏幕的 ViewModel 中,该 View 模型在其构造函数中请求它的接口(interface)。我认为这是一个非常简单的改变,但我不知道我是否可以肯定地说这样更好。

对于下面的示例,这是共享由 Entity Framework 生成的公共(public) DBContext 对象的可接受方法吗?如果没有,我该如何改变或改善它?谢谢!

public interface ICommonContext
{
ServerEntities Context { get; }
}

public class CommonContext : IModule, ICommonContext
{
private static ServerEntities _context;
public ServerEntities Context
{
get { return _context; }
}

public void Initialize() { _context = new ServerEntities(); }
}

/// When used in a VM ///
private ServerEntities _model;

public SomeViewModel(ICommonContext cc){
_model = cc.Context;
}
//////////////////////////

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