【问题标题】:Using breeze js not to interact directly with DBContext使用breeze js不直接与DBContext交互
【发布时间】:2012-12-31 04:47:32
【问题描述】:

我是一个新的微风,有几个问题。

我认为breathjs 有非常好的特性,所以我可以替换我自己的datacontext。但是,我不想让微风直接与 dbcontext 层交互。事实上,在我的应用程序中,Service 层只向 Controller 公开 ViewModel——甚至没有真正的业务模型。所以我不太确定我是否可以使用 Breeze,因为在少数 Breeze 的示例中,我只看到 Breeze 直接与 DBContext 交互。

谢谢。

==========================================

感谢沃德的回答,

关于我喜欢 Breeze 的功能,它有助于减少大量时间来构建我自己的客户端视图模型。而要构建一个 SPA,维护客户端视图模型对我来说真的很痛苦,尤其是我的应用程序有桌面应用程序客户端和其他手持设备的应用程序。此外,为了处理从 JSon 对象到 Knockout 的映射——这意味着对于每个视图模型,我还需要一个映射器。

目前,我的架构是这样的:

服务器端: 存储层 服务层 控制器(带有暴露给客户端的 Web API)

控制器只能通过Service发送请求来获取数据(以视图模型的格式)。

所以,我的问题是是否可以利用 Breeze 进行查询以及它与淘汰赛的集成。

【问题讨论】:

    标签: asp.net-mvc breeze singlepage


    【解决方案1】:

    Breeze 从不直接与您的 DbContext 一起工作;它适用于您通过服务上的端点公开的服务模型(例如,Web API 控制器方法)。但是,当客户端可以查询和保存与服务器上的实体结构相同的实体时,您肯定会从 Breeze 中获得最大的价值。

    您可以使用 Breeze 检索 ViewModel - 您可以使用 Breeze 调用几乎任何 HTTP 服务方法。我不清楚 Breeze 在您检索到它们后如何帮助您管理客户端上的这些 ViewModel。

    Breeze 的哪些功能在您看来“非常好”?您对该问题的回答将帮助您确定 Breeze 是否有助于您首选的建筑风格。

    【讨论】:

      【解决方案2】:

      在没有 API 控制器的情况下直接使用 DBContext 通过 Breeze 查询数据应该没问题,保存可能更难但仍然易于管理。我认为最复杂的部分是向客户端获取元数据。

      根据this SO answer,DBContext 直接暴露其他来源元数据的示例应该在一周左右的时间内发布。

      同时,请检查BreezeJS spa-template sample,因为服务器端涉及存储库模式,这使其类似于您的数据访问设置。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-06-20
        • 2014-10-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-19
        相关资源
        最近更新 更多