C#-EBNF到流畅的界面
作者:互联网
我最近需要为C#编写一个流畅的接口,该接口本质上将反映SQL.是的,我知道LINQ to SQL,但是对“更接近金属”感到很有趣-它具有本质上仅提供C#中的Intellisensified SQL填充程序的功能.
例如.,
var fq = new FluentQuery();
Expression<Action> =
() => fq.SELECT.DISTINCT(Foo.ID).FROM(Foo).WHERE(Foo.Age > 22);
现在,我想这个概念可以推广使用-也就是说,将通用EBNF转换为流畅的界面生成器怎么样?有人知道这种野兽是否存在吗?
解决方法:
我喜欢它,但是您必须确保返回诸如HasFromAndSelect之类的类型,否则您不会以fq.SELECT(Foo.ID).SELECT(Foo.Age).WHERE(Foo.Age> 22)或fq.WHERE(Foo.Age> 22).SELECT(Foo.ID)等
还有很多需要考虑的问题,包括CAPS LOCK MODE伤害到我的眼睛的事实:)
标签:fluent-interface,ebnf,linq,sql,c 来源: https://codeday.me/bug/20191210/2104023.html