编程语言
首页 > 编程语言> > C#-EBNF到流畅的界面

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