我在我的数据访问层中使用 FluentData ORM for .NET。但是,这个问题可能适用于大多数 ORM。
IDbContext 的正确寿命是多少?每次执行对数据库的新查询时是否应该实例化一个新的数据库上下文?我有以下两种情况,哪个是正确的用法?请注意,我正在查询 MS SQL 以及 MySQL 服务器。所以,我想知道是否有任何影响达到最大连接数。是的,我在多个线程上调用数据库。这两种情况都是线程安全的吗?
情景一:
我的存储库类实现了 IDisposable 并拥有一个 IDbContext 类型的私有变量。这个变量在构造函数中被实例化,并在类被释放时被释放。存储库中只有一个上下文实例。
场景 B:
我的存储库类有一个私有方法,它返回一个新的 IDbContext 实例。每当另一个方法调用数据库时,它们都会调用此方法来获取新的数据库上下文。