Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# EBNF到fluent接口_C#_Sql_Linq_Fluent Interface_Ebnf - Fatal编程技术网

C# EBNF到fluent接口

C# EBNF到fluent接口,c#,sql,linq,fluent-interface,ebnf,C#,Sql,Linq,Fluent Interface,Ebnf,我最近需要为C编写一个流畅的接口,它将基本上镜像SQL。是的,我知道LINQtoSQL,但我感兴趣的是更接近于金属,它本质上只提供了C中的一个智能化SQL垫片 例如: 现在,我想这个概念可以推广,也就是说,通用的EBNF到fluent接口生成器怎么样?有人知道这样的野兽是否存在吗?我喜欢它,但你必须确保返回HasFromAndSelect之类的类型,这样你就不会得到fq.SELECTFoo.ID.SELECTFoo.Age.WHEREFoo.Age>22或fq.WHEREFoo.Age>22.S

我最近需要为C编写一个流畅的接口,它将基本上镜像SQL。是的,我知道LINQtoSQL,但我感兴趣的是更接近于金属,它本质上只提供了C中的一个智能化SQL垫片

例如:


现在,我想这个概念可以推广,也就是说,通用的EBNF到fluent接口生成器怎么样?有人知道这样的野兽是否存在吗?

我喜欢它,但你必须确保返回HasFromAndSelect之类的类型,这样你就不会得到fq.SELECTFoo.ID.SELECTFoo.Age.WHEREFoo.Age>22或fq.WHEREFoo.Age>22.SELECTFoo.ID等


需要更多的思考,包括大写锁定模式正在伤害我的眼睛的事实:

大写锁定是故意的-用于从视觉上区分您正在使用的内部DSL;另外,SQL通常是用caps规范地指定的。如果您现在想要它,请在Micro ORM上搜索多个选项。
var fq = new FluentQuery();
Expression<Action> =
    () => fq.SELECT.DISTINCT(Foo.ID).FROM(Foo).WHERE(Foo.Age > 22);