0

我对从 Ruby on Rails 3 迁移而来的 ASP.NET MVC 框架有点陌生,它是 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");
        }
    }
4

2 回答 2

0

拥有 DAL(数据访问层)的目的是关注点分离的概念。这也适用于单一职责原则

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

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

于 2012-10-30T17:42:29.307 回答
0

这取决于。我不熟悉 Ruby 的活动记录,所以我不能给你比较。

在 .Net 中,数据访问通常是应用程序中的较低层。这会有所不同,但通常随着应用程序的增长,您会发现数据层更加孤立。在较小的应用程序中,这不是什么大问题。

截至目前,ORM 已成为数据访问的方式。.NET 中有两种流行的 ORM:Entity Framework (Microsoft) 和 nHibernate (open source)。两者都有优点,都可以完成工作并且都有不错的文档。EF 更容易上手,因为它与 .Net 配合得很好。nHibernate 更加灵活,尤其是随着复杂性的增加。nHibernate 一直在生成更好的 SQL。虽然,微软在最新版本的 EF 中为清理 SQL 生成做了很多工作。

于 2012-10-30T17:48:48.127 回答