gpt4 book ai didi

c# - 使用和公共(public)对象之间的最佳方法?

转载 作者:太空狗 更新时间:2023-10-29 21:58:16 24 4
gpt4 key购买 nike

我想知道在使用语句和创建公共(public)变量之间最好的方法是什么。我的例子如下:我有一个继承自 disposable 的管理器类,并且此类可以访问我的 dbcontext 和方法。我现在正在做的是在我的 cs 类上对该类进行 ussing 并根据我的需要创建和销毁我的对象。例如:

public class StudentManager:  IDisposable
{
private ISchoolUnitOfWork _unitOfWork;

public StudentManager()
{
_unitOfWork = new SchoolUnitOfWork();
}

public IEnumerable<Student> GetStudents()
}

在我的 CS 课上我这样做:

private IEnumerable<Stundets> GetStudents()
{
using (StudentManager manager = new StudentManager())
{
return = manager.GetStudents();
}
}

private StudentManager = new Studentmanager();

最好的方法是什么:使用我的 StudentManager 实例(只需创建一个连接并在离开页面时销毁)或使用using

我对此有点困惑。提前致谢!

我确实在同一个管理器上更新我的上下文,在我的上下文中调用保存,这是我的工作单元的一个接口(interface),我不直接访问上下文,但是当我构造它时,我构造了一种类型我的工作单元.

我确实节省了对管理器的 crud 操作。因此,在我的管理器上更新、插入、修改我调用保存方法,例如:

public class StudentManager....

public Student UpdateStudent(Student student)
{
IStudentService service = new StudentService(_unitOfWork.StudentRepository);
Student student= service.Update(student);
_unitOfWork.Save();
return student;
}

一般来说,我有一个接口(interface) IUnitOfWork 和一个 UnitOfWork,还有一个 IRepository 和一个存储库。我只是使用一个管理器来不直接实例化我的 UnitOfWork,而是使用一个管理器来实例化它……我认为这是合法且有用的!

最佳答案

最好的方法是 using 语句,因为它会自动调用 Dispose。你可以保证你的处置逻辑会发生。事实上,这也是您应该如何使用 SqlConnectionSqlCommand 等对象。所以你用 using 做对了。

事实上,您声明您正在使用 DbContext 访问数据。这些应该按需实例化并包装在 using 中。无需共享这些类型的实例,因为连接池是通过连接字符串在 SQL Server 完成的。

关于c# - 使用和公共(public)对象之间的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17787028/

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