我最近需要为 C# 编写一个基本反射(reflect) SQL 的流畅界面。是的,我知道 LINQ to SQL,但我对“更接近金属”很感兴趣——有一些东西基本上只提供 在 C# 中的 Intellisensified SQL shim。
例如,
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 伤害了我的眼睛 :)
关于c# - EBNF 到流畅的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/246080/