我在数据访问层使用FluentData ORM for .NET。但是,这个问题可能适用于大多数ORM。
IDbContext的正常生命周期是什么?每次执行对数据库的新查询时,是否应该实例化新的数据库上下文?我有两个场景,这是正确的用法?请注意,我正在查询MS SQL以及MySQL服务器。所以,我想知道是否有任何影响到达最大连接。是的,我在多线程上调用数据库。两个场景都是线程安全的吗?
情景A:
我的存储库类实现了IDisposable并保存了一个IDbContext类型的私有变量。此变量在构造函数中实例化,并在处理类时进行处理。存储库中只有一个上下文实例。
情景B:
我的存储库类有一个私有方法,它返回一个新的IDbContext实例。每当另一个方法调用数据库时,他们就会调用此方法来获取新的数据库上下文。
答案 0 :(得分:1)
来自官方文件:
什么时候应该处理?
在所有其他情况下,处理将由FluentData自动处理。这意味着数据库连接在执行查询之前打开,并在执行完成后立即关闭。
http://fluentdata.codeplex.com/documentation#Dispose
希望它有所帮助。