最佳答案
我目前使用的 DbContext
类似如下:
namespace Models
{
public class ContextDB: DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<UserRole> UserRoles { get; set; }
public ContextDB()
{
}
}
}
然后,我使用下面的行在 全部的顶部我的控制器,需要访问数据库。我也在我的 UserRepository 类中使用它,该类包含与用户相关的所有方法(比如获取活动用户,检查他拥有什么角色,等等):
ContextDB _db = new ContextDB();
考虑到这一点,有时一个访问者可以激活多个 DbContext,例如,如果它访问的控制器使用 UserRepository,这可能不是最好的想法。
什么时候应该创建一个新的 DbContext?或者,我是否应该有一个在所有地方传递和重用的全局上下文?这会影响性能吗?我们也欢迎提出替代方法的建议。