我在我的数据访问层中使用了.NET的FluentData对象模型。然而,这个问题可能适用于大多数ORM。
IDbContext的正常使用寿命是多少?是否应该在每次执行对数据库的新查询时实例化新的数据库上下文?我有以下两个场景,哪一个是正确的用法?请注意,我正在查询MySQL以及MySQL服务器。所以,我想知道其中任何一个对于达到最大连接数是否有任何影响。是的,我是在多线程上调用数据库。这两个场景都是线程安全的吗?
场景A:
我的存储库类实现了IDisposable并保存了一个IDbContext类型的私有变量。这个变量在构造函数中被实例化,并在类被释放时被释放。在存储库中只有一个上下文实例。
场景B:
我的存储库类有一个私有方法,它返回一个新的IDbContext实例。每当另一个方法调用数据库时,它们都会调用此方法来获取新的数据库上下文。
发布于 2013-04-25 08:27:38
来自官方文档:
应该在什么时候处置?
如果已启用UseTransaction或UseSharedConnection,则必须释放
(或MultiResultSql),则必须释放UseMultiResult
,则必须释放
在所有其他情况下,dispose将由FluentData自动处理。这意味着数据库连接在执行查询之前打开,在执行完成后关闭。
http://fluentdata.codeplex.com/documentation#Dispose
希望这能帮助到别人。
https://stackoverflow.com/questions/13693688
复制相似问题