我目前有一个名为“SqlData”的类,其中包含连接到我的 MS-SQL 数据库所需的所有方法。
它包含用于插入、删除和更新不同类型表格的方法 - 因此在我的 WPF 应用程序的许多 Windows 中使用。
假设我将近 90% 的 WPF-Windows 调用了我的 SqlData 方法中的至少三种方法来加载、插入和更新不同的记录...
目前,我需要在每个窗口中实例化我的 Sql 类 - 因此我正在考虑将整个类设为静态,这样我就不需要每次都实例化它了吗?
但我也读过在与外部服务器(如 Web 服务或数据库)通信时不要使用静态类。
您能给我一些建议吗?
以下是我的类中使用的一些方法(bool 返回 true,当语句完成时,否则返回 false):
公共(public)数据表 GetAllSomething(数据表_数据)
public bool WriteSomething(Object something, out int insertedId)
public bool DeleteSomething(Object something)
谢谢!
最佳答案
At the moment, I need to instantiate my Sql-Class in every Window - therefore I'm thinking of making the entire Class static so I don't need to instantiate it every time?
在 .NET 中实例化一个类所花费的时间是如此 ridiculously low你不应该担心。就我个人而言,我不使用静态类,因为它们在应用程序的不同层之间引入了强耦合,使它们更难以单独进行单元测试。
所以我更喜欢将所有数据库访问抽象为一个接口(interface)(或抽象类),然后针对特定数据库提供该接口(interface)的实现。
关于c# - 使数据库类静态化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7387548/