我们的目标其实是要是实现整个OData协议,其中最强大的部分就是要尽可能支持OData协议转换为ORM可识别的LINQ表达式,用于自动翻译成SQL语句,这里我们不考虑对性能有极端要求的项目,其深远的意义我在 OData(01) - 使用OData高效构建后台服务 已说明,这里的工作原理如下所示,目前看来能够高度支持微软标准LINQ翻译SQL的ORM框架也就Entity Framework、Entity Framework Core、Mego三种,因此其他的暂时就不在考虑范围内。
URL -> 词法分析 -> 语法分析 -> 语义分析 -> LINQ表达式 -> ORM -> Database正因如此,我们创建了Github项目 Caredev.OData。目前已经完成前面两项最困难的工作,这里先列出项目进程,欢迎大家提出意见,谢谢支持。
OData文法定义实现(已完成)
OData抽象语法树实现(已完成)
ASP.NET及ASP.NET Core 路由实现(已完成)
实现OData批量提交(进行中)
语法树编译LINQ查询表达式
支持Entity Framework、Entity Framework Core、Mego三种ORM框架
支持OData Aggregation Url