.net:我们的自定义数据访问层类是否应该实现 Idisposable?
.net:我们的自定义数据访问层类是否应该实现 Idisposable?他们主要使用数据库作为数据存储来存储/检索数据?
谢谢
.net: Should our custom Data Access Layer classes implement Idisposable? They use mainly a Database as a Data Store for storing/retrieving data?
Thank you
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Dispose 主要用于释放非托管资源。例如套接字、数据库连接和文件句柄。
如果您自己不跟踪任何非托管资源,则您不需要实现
IDisposable
,因为当DbConnection
被收集时,所有资源都被释放。 GC。我建议您做两件事:
a) 如果您有 DbConnection 作为成员变量,请实现 IDisposable 并在 Dispose 方法中释放连接。仅当您在使用 DAL 时使用
using
关键字时,此方法才有效。b) 在任何可能的地方开始使用
using
,以确保尽快释放资源。Dispose is primary used to free unmanaged resources. For instance sockets, connections to databases and file handles.
If you do not keep track of any unmanaged resources yourself you do not need to implement
IDisposable
since all resources are freed when theDbConnection
is collected by the GC.I would recommend you to do two things:
a) If you have a DbConnection as a member variable, implement
IDisposable
and dispose the connection in the Dispose method. This will only work if you are using theusing
keyword when using your DAL.b) Start using
using
anywhere you can to make sure that resources are freed as soon as possible.