C# - DAL中的类设计

时间:2011-07-18 12:47:45

标签: c# class

我遇到了一个完全由静态方法组成的数据访问层类。该类由Web应用程序使用

例如

public class DataAccessLayer
{
Public static PersonDetails GetDetails(int iPersonID);
{
//implementation
}
Public static bool SaveDetails(PersonDetails objPerson);
{
//implementation
}

}

编写此类代码是一种好习惯。我可以理解,当我使用静态方法时,性能会略好一些,但是当多个用户调用Page时,这会导致任何并发错误吗?

3 个答案:

答案 0 :(得分:2)

静态与否,您可能会遇到并发问题,这在很大程度上取决于您的数据访问方法中的实际代码是如何编写的(例如,使用事务,是否存在用于数据源中的并发检查的字段等)。

答案 1 :(得分:2)

  

编写此类代码是一种好习惯。

在我的团队中解雇攻击,打破了许多好的做法我建议谁会写出类似的东西给我的竞争对手并为他们工作。

  

我可以理解当我使用静态方法时性能稍好一些。

赞0.000000000000000000001%?

  

但是当多个用户调用Page时,这会导致任何并发错误吗?

取决于如何编写方法。但是,它违反了面向对象,使得依赖注入更加困难,使得在事务协调器下很难使用正确的事务划分,并且很难对单元进行单元测试/模拟。

答案 2 :(得分:0)

静态变量在独立应用程序中死亡,因为 垃圾收集器清理所有对象,因为您的应用程序具有 结束。

但是如果您在Web应用程序中使用它,那么您的应用程序就不是 死了,直到你的网络服务器死所以即使你关闭了网络浏览器, 您的Web服务器没有关闭。尝试关闭您的服务器和您的服务器 变量将不复存在。

相关问题