Asp Web Api Breeze在分层应用程序中

时间:2014-03-31 19:55:52

标签: design-patterns architecture asp.net-web-api breeze

我目前有一个ASP Web API项目,目标是创建一个SPA。

我首先使用EF代码并具有以下解决方案结构:

- BookClub.Entities
- BookClub.DataAccess (DbContext, generic Repository, ...)
- BookClub.BusinessLogic (UOW, Facade pattern)
- BookClub.Web (ASP Web Api (v2))

我想尝试一下Breeze,但我真的不知道哪里适合。 所有示例都在ApiController中使用Context或Repository。 应该避免这种情况,并且应该使用每个实体的BusinessLogic层Facade。 但是我的控制器怎么样呢?

有没有人曾经这样做过?

1 个答案:

答案 0 :(得分:0)

您的控制器只是促进您定义的视图的业务逻辑实体的转换。如果您已经构建了业务层,那么只需在控制器的get / put方法中使用它。下面的代码将以json格式返回Book

[HttpGet]
[ValidateAntiForgeryToken]
[OutputCache(NoStore = true, Duration = 0)]
public ActionResult GetBook(int bookID)
{
    BookBL bookBL=new BookBL();
    Book model=bookBL.SelectOne(bookID);
    return Json(model, JsonRequestBehavior.AllowGet);
}

//Return a partial view instead 
[HttpGet]
[ValidateAntiForgeryToken]
[OutputCache(NoStore = true, Duration = 0)]
public ActionResult GetBookView(int bookID)
{
    BookBL bookBL=new BookBL();
    Book model=bookBL.SelectOne(bookID);
    return PartialView("Partials/BookView", model);
}