数据库类一种方法与许多方法

时间:2015-02-14 03:25:28

标签: c# database

我正在为我的应用程序做一个数据库类来连接到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),虽然我不确定它是如何工作的。

哪个更好?或者有更好的解决方案吗?

提前致谢并抱歉英语错误。

1 个答案:

答案 0 :(得分:1)

我更喜欢第一个,虽然您可以将两者合并,然后将TryLogin方法调用到procedure方法来进行数据库调用。然后,如果特别需要某个存储过程,则只需要重新实现数据库调用。使用辅助方法构造values参数,您可以整体保存一些代码。

使用&#34; generic&#34;单独的方法你强迫调用者构建字典,看起来你也强迫调用者知道过程和参数名称。因此,现在您为调用者创建了不必要的复杂性,对参数进行了没收类型检查,并且您的数据层泄漏到业务对象中。

我也不会将所有数据库调用封装到单个类中。这听起来像是一场维护噩梦。至少我会根据他们的域名将其分解。