现在可以使用BreezeJS而无需使用EF吗?

时间:2016-10-16 14:50:34

标签: c# json entity-framework kendo-ui breeze

以前您必须使用Entity Framework,因为Breeze直接连接到DbContext,并且该对象在其他地方不存在。 有手工创建元数据的概念(即T4) 我可以访问SQL服务器,其中每个Table都有自己的crud usp(SSMS工具包),ashx将所有RMI都放入DB,生成json架构等和DTO服务模型。我已经查看了WCF服务层(http://davybrion.github.io/Agatha/),但整体EF似乎无处不在。我试过Angular我很高兴使用ADO或Dapper.NET BreezeJS的连接是高性能后端(Micro-ORM)还是应该使用Kendo DataSource(http://docs.telerik.com/kendo-ui/framework/datasource/overview)。这适用于需要无摩擦数据的混合移动应用程序。其他人发现了一个不那么臃肿的简单ClientSide / Server Side JSON数据集成系统? 提前致谢

1 个答案:

答案 0 :(得分:0)

是的,您可以在没有EF的情况下使用Breeze。这需要更好地提升。

Breeze.ContextProvider包不依赖于EF。它有一个ContextProvider类,用于处理将JSON从客户端转换为服务器端.NET实体。您将ContextProvider子类化为实现实际保存到数据库的部分。

breeze.server.net提供了两个实现:实体框架的Breeze.ContextProvider.EF和NHibernate的Breeze.ContextProvider.NH。您可以查看这些内容,了解如何构建Dapper实现。

其中一个棘手的问题是以正确的顺序执行添加和删除操作。例如,如果我要添加客户和一些相关订单,则需要在订单之前将客户添加到数据库中。 EF会自动对添加内容进行排序,但NH不会,因此我们在NHRelationshipFixer中有一个SortDependencies()方法。如果你的micro-ORM没有为你做这件事,你可能需要做类似的事情。

如果您想出一个微型ORM的实现,请考虑将其贡献给社区。