使用Breeze JS而非直接与DBContext交互

4

我对breezejs非常陌生,有一些问题。

我觉得breezejs有非常好的功能,可以替代我的数据上下文。但是,我不希望breezejs直接与dbcontext层交互。实际上,在我的应用程序中,服务层仅向控制器公开视图模型——甚至不是真正的业务模型。因此,我不太确定是否可以使用Breeze,因为在Breeze的一些示例中,我只看到Breeze直接与DBContext交互。

谢谢。

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

感谢Ward的回答,

我喜欢Breeze的功能是它将帮助减少构建自己的客户端视图模型所需的时间。构建单页应用程序时,维护客户端视图模型对我来说真的很痛苦,特别是我的应用程序还有桌面应用程序和其他手持设备的应用程序。另外,处理从JSon对象到Knockout的映射——这意味着每个视图模型都需要一个映射器。

目前,我的架构如下:

服务器端: Repository layer <=> Service layer <=> Controllers (with the Web API that exposes to Client-side)

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

所以,我的问题是是否可以利用Breeze来查询以及它与Knockout的集成。

2个回答

3
Breeze永远不会直接与您的DbContext一起使用;它与您在服务上通过端点公开的服务模型一起使用(例如Web API控制器方法)。但当客户端可以查询和保存在结构上与服务器上的实体相同的实体时,Breeze肯定会给您带来最大的价值。 使用Breeze可以检索ViewModels - 您几乎可以使用Breeze调用任何HTTP服务方法。然而,对于已经检索到的ViewModels,在客户端上如何管理它们,我并不清楚Breeze如何帮助您。
Breeze的哪些特性对您来说“非常好”?您对这个问题的回答将有助于确定Breeze是否可以帮助您实现首选的架构风格。

1
通过Breeze直接使用DBContext查询数据而不使用API控制器应该没有问题,保存可能会更困难,但仍然可行。我认为最复杂的部分是将元数据传递到客户端。
根据这个SO答案,从其他来源公开元数据的示例应该在一周左右发布。
同时,请查看BreezeJS spa-template样本,因为服务器端涉及存储库模式,使其类似于您的数据访问设置。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接