创建数据访问对象时最好的方法是什么?

我在MyWebpage.aspx.cs中有一个方法,所以:

public partial class MyWebpage : PageBase { private readonly DataAccessLayer dataAccessLayer; protected string GetMyTitle(string myVar, string myId) { if (string.IsNullOrEmpty(myVar)) { return string.Empty; } return dataAccessLayer.GetMyTitle(Convert.ToInt32(myId), myVar); } } 

在DataAccessLayer类中,我有一个与DB对话并执行DAL并返回标题的方法。

从MyWebPage.aspx.cs类访问DAL的最佳实践是什么(因为我每次都需要创建一个新的DataAccessLayer()对象?我应该在我的PageBase类中创建它还是每次在后面的代码中调用它?

首先是从您的代码后面访问DAL或表示层通常不是一个好习惯。 因为在这种情况下,您需要将业务逻辑代码放在代码中(表示层),这会导致关注点冲突,高耦合,重复和许多其他问题。 所以,如果您正在寻找最佳实践,我建议您查看以下链接:

  • 数据层指南
  • 分层应用指南
  • 对象关系元数据映射模式(尤其是存储库模式)和域逻辑模式

这些都是好书:

  • 企业应用程序架构模式(作者:Martin Fowler)
  • Microsoft®.NET:为企业构建应用程序

还有关于调用DAL的静态函数。 如你所知,静态函数容易受到multithreading的影响,所以如果你使用的是DAL函数中共享的任何东西(有时它就像共享连接,命令等),它会破坏你的代码,所以我认为它更好避免在这一层中使用静态函数。

我是存储库模式的粉丝。 每个人都有自己的看法,但我喜欢一个sql table =>一个存储库的想法并共享名称,就像ORM工具一样。

entity framework可以快速完成DAL的工作,您仍然可以实现像存储库这样的DAL模式。

这是一个代码生成器 ,它接受一个sql连接字符串,并提供一个相当标准的企业数据访问应用程序块实现。 它不是很健壮,因为它是针对一个平淡的sql架构设计的。 如果您使用示例数据库,它将为您提供可用于根据自己的喜好设计数据访问层的代码示例。