WebApi,存储库模式,工作单元和MVC 4

时间:2012-11-03 15:18:05

标签: asp.net-mvc-4 asp.net-web-api repository-pattern entity-framework-5 unit-of-work

我正在尝试在MVC 4项目中使用实体框架代码优先5与WebApi,存储库模式,工作单元和Windsor Castle。

我理解如何将EF5与存储库模式和工作单元一起使用。

我想拥有带Http属性的存储库和UoW方法,所以如果某些东西试图用HttpGet属性做一个帖子就不允许这样做。 例如,我有一个服务:

[System.Web.Http.HttpGet]
public HttpResponseMessage GetById(long id)
{
    var branch = Uow.Branches.GetById(id);
    if (branch != null)
    {
        Request.CreateResponse(HttpStatusCode.OK, branch)
    } 
    throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound));
}

现在,让我担心,在控制器中。

我想使用上面的方法将ViewModel发送到View

 public ViewResult Details(int id)
 {
     var country = Uow.Countries.GetById(id);
     return View(country);
 }

但是GetById返回一个HttpResponseMessage而不是例如IEnumerable<分支> (我喜欢它)因为如果明天我想删除MVC部分并创建一个SPA(单页应用程序)应用程序,那么该服务将保持不变。

在服务中返回HttpResponseMessage可以吗?或者我应该返回别的东西吗?

是否可以创建服务,或者我应该将其代码移动到控制器?

有关此架构的任何建议吗?

提前致谢!吉列尔莫。

0 个答案:

没有答案