javascript - 在没有 Entity Framework 的情况下使用 Breeze.js

标签 javascript entity-framework signalr breeze single-page-application

我们正在尝试使用与 John Papa 的 Pluralsight 类(class)类似的技巧和技术(例如 Web API、knockout、jquery 等)来开发 SPA。但是,作为一家公司,我们决定不使用 Entity Framework。我们想使用标准 ADO.NET 编写服务器端数据层。

现在,我们正在尝试将 Breeze 集成到我们的解决方案中。然而,尽管 Breeze 网站表示他们与 Microsoft 无关,但看起来如果您不使用 EF,您将在 Breeze 中经历漫长而痛苦的旅程。

我们尝试评估 NoDB Breeze 示例,但那东西非常复杂且难以理解(以及弄清楚如何在服务器端的标准分层架构中实现它 - 一切似乎都是紧密耦合的并且是只需放入 MVC/Web API 项目的 Models 文件夹即可)。

所以,我的问题是:

-- 如果您不使用 EF,Breeze 是否是客户端数据库的错误选择?

-- 如果可以轻松地使 Breeze 不使用 EF 而在服务器端直接使用 ADO.NET,是否有更好的示例或文档说明如何做到这一点?

-- 考虑到我们的 SPA 实现与 John Papa 的 SPA 架构非常相似,包括 durandal、knockout、Web API 等,除了(再次)我们没有使用 EF,是否有比 Breeze 更好的选择?

-- 然后是 SignalR...我们计划稍后实现 SignalR,Breeze 甚至可以与 SignalR 一起使用吗?

谢谢!

最佳答案

SO.com 上有很多更具体的示例,但我想解决您的几个关键问题 -

We tried evaluating the NoDB Breeze example, but that thing is very convoluted and difficult to understand (as well as figure out how to implement it in a standard layered arch on the server-side - everything seems to be tightly coupled and is just put in the Models folder of a MVC/Web API project).

根据您使用的数据库类型,在 StackOverflow 和 Breeze 上还有多个可用的示例以及操作方法。我可以在这里列出它们,但如果您添加了您打算使用的数据库类型,可能会更容易提供更好的答案。

Is Breeze the wrong choice for a client-side data library if you're not using EF?

无论您使用哪种后端,Breeze 都是一个很好的选择。根据您使用的其他技术,最终完成设置确实有不同程度的困难,但是一旦您摆脱困境,回过头来看,您会发笑这比手动创建自己的数据库要容易得多。这是一个很棒的免费信息示例,可用于指导您了解如何使用各种技术 - Why are my Breeze.js entities not creating ko.observables?

If Breeze can be easily made to not use EF and using just straight ADO.NET on the server-side, is there a better example or documentation showing how to do this?

我会检查一些其他可用的示例,具体取决于您尝试使用的技术。下面是几个不使用 EF 的例子——

Zza - http://www.breezejs.com/samples/zza

  • Angular 、MongoDb、节点

埃德蒙兹 - http://www.breezejs.com/samples/edmunds

  • 完全没有数据库的 Angular,仅使用 API

很多时候,您会发现只需在查询中使用 toType 即可从查询中创建实体。有时您需要更深入,但这同样取决于技术。

Given that our SPA implementation closely resembles John Papa's SPA arch with durandal, knockout, Web API, etc., except (again) we're not using EF, is there a better choice for us than Breeze?

还有其他客户端库,JayData 可能是最受欢迎的。您可能需要召集您的团队并决定使用哪些技术更适合您,同时考虑许多与我们对 StackOverflow 的想法无关的不同因素。

And then there's SignalR... We plan on implementing SignalR later, does Breeze even work with SignalR?

更新了 Ward 的建议 - SignalR 和 Breeze 似乎可以为您的应用程序提供不同的用途。我认为明智的做法是看看您的应用程序是否能更好地与 SignalR 一起工作,而不是 Breeze 是否会,因为它们的关注点不同。

关于javascript - 在没有 Entity Framework 的情况下使用 Breeze.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18060596/

相关文章:

javascript - 使用自定义消息离开页面留在页面上

javascript - 用 Regex 替换空格而不替换空的 HTML 标签

javascript - 正则表达式非转义引号

entity-framework - DbSet.AddOrUpdate中的复合自然键

c# - 使用 LINQ GroupBy() 从数据库获取唯一项目的强类型列表

sql-server - 如何使用 Oracle 和 SQL Server 在 .NET 4.5 C# Entity Framework 6 中将列映射到大写?

javascript - SignalR 在 IE 和 Firefox 上与 POST 请求断开连接

Signalr 支持的平台

Javascript Canvas 游戏重置错误,绘制失败

c# - 具有不同配置的多个 SignalR 集线器