我正在尝试在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可以吗?或者我应该返回别的东西吗?
是否可以创建服务,或者我应该将其代码移动到控制器?
有关此架构的任何建议吗?
提前致谢!吉列尔莫。