我对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");
}
}
答案 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生成做了大量工作。