我将开发一个数据库层来公开一组功能,这些功能将提供对数据库的读写.我有一系列与此相关的问题,我希望有人提出建议
如何处理数据库异常?(即:超时异常)或让dll客户端处理它们
dll不是线程安全的,所以我应该为每个dll实例使用单个连接吗?因为这提高了性能.
开发类库是否有任何一般规则?
我正在使用C#vs2008和SQL2008
1:由你决定; 你不能对它们做任何事情,所以我可能会让它们浮出水面,除非我需要将它隐藏在调用者之外(用类似的,不太具体的例外代替)
2:你应该把联系保持为"本地",尽可能短暂; 通常每个方法调用一个.大多数提供程序都有连接池,这意味着您将返回相同的底层连接(只要您使用相同的连接字符串),而不必强调同步,重入等(它将根据需要分配更多连接)
3:查看存储库模式之类的模式; 另请参阅LINM-to-SQL,Entity Framework,NHibernate等ORM框架.
即
Customer GetCustomer(int id) {
using(var conn = CreateConnection()) {
conn.Open();
// etc
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
652 次 |
| 最近记录: |