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

时间:2012-12-06 01:32:41

标签: c# .net .net-3.5

我在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类中创建它还是每次在我调用它时代码背后?

2 个答案:

答案 0 :(得分:6)

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

这些都是好书:

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

答案 1 :(得分:0)

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

实体框架可以快速完成您的DAL,您仍然可以实现像存储库这样的DAL模式。

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