什么是dalAccess应该在ASP.NET中做什么?

时间:2012-10-30 17:35:03

标签: c# asp.net asp.net-mvc

我对ASP.NET MVC框架有点新意,从Ruby on Rails 3和它的ActiveRecord转移。请帮助我理解dalAccess在MVC中的位置。

[HttpGet]
    public ActionResult copyCampaign(int Id)
    {
        DALAccess dalaccess = new DALAccess();
        //string newid = dalaccess.CopyOffer(Id);
        string newid = dalaccess.CopyOfferByCampaignId(Id);

        string type = PrepareOffer4Edit(newid);
        if (type == "bundle")
            return RedirectToAction("bundleStep1");
        else if (type == "scratchOff")
            return RedirectToAction("scratchOffStep1");
        else
        {
            return RedirectToAction("CampaignMgmt", "CampaignMgmt");
        }
    }

2 个答案:

答案 0 :(得分:0)

拥有DAL(数据访问层)的目的是Separation of Concerns的概念。这也适用于Single Responsibility Principle

DAL为您提供了一种从源中检索数据对象的方法,而无需担心数据来自何处或如何转换数据。这允许您专门为数据访问功能创建测试,以帮助识别问题。

如果您需要编写使用相同数据的另一个应用程序(或者说第二个前端),分离也会派上用场。

答案 1 :(得分:0)

这取决于。我不熟悉Ruby的活跃记录,所以我不能给你相提并论。

在.Net中,数据访问通常是应用程序中的较低层。这种情况各不相同,但通常随着应用程序的增长,您会发现数据层更加孤立。在较小的应用程序中,这不是一个问题。

截至目前,ORM已成为数据访问的方式。 .NET中有两种流行的ORM:实体框架(Microsoft)和nHibernate(开源)。两者都有优点,都可以完成工作,并且都有不错的文档。 EF更容易上手,因为它很好地与.Net一起流动。随着复杂性的增加,nHibernate在某种程度上更加灵活。 nHibernate一直在生成更好的SQL。尽管如此,微软在最新版本的EF中为清理SQL生成做了大量工作。

相关问题