我正在为我的应用程序做一个数据库类来连接到Sql Server数据库,我正在考虑集中查询和程序执行。但我对每个动作都有一个方法(这可能会达到一百个方法)或者创建一个更“通用”的方法存在疑问。
示例:
1)每种行动的一种方法:
public bool TryLogin(string username, string password) {
[do query/procedure things and return]
}
2)“通用”方法:
public DataSet procedure(string name, Dictionary<string, object> values) {
[run through the values dictionary to
define the parameters, run and return a dataset for caller class]
}
我想到了第一个,但我想知道是否有太多方法对性能不会有坏处。
对于第二个,我考虑使用SqlParameter AddWithValue(string,object),虽然我不确定它是如何工作的。
哪个更好?或者有更好的解决方案吗?
提前致谢并抱歉英语错误。
答案 0 :(得分:1)
我更喜欢第一个,虽然您可以将两者合并,然后将TryLogin
方法调用到procedure
方法来进行数据库调用。然后,如果特别需要某个存储过程,则只需要重新实现数据库调用。使用辅助方法构造values
参数,您可以整体保存一些代码。
使用&#34; generic&#34;单独的方法你强迫调用者构建字典,看起来你也强迫调用者知道过程和参数名称。因此,现在您为调用者创建了不必要的复杂性,对参数进行了没收类型检查,并且您的数据层泄漏到业务对象中。
我也不会将所有数据库调用封装到单个类中。这听起来像是一场维护噩梦。至少我会根据他们的域名将其分解。