3

我最近需要为 C# 编写一个流畅的接口,它本质上将镜像 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 到流利的接口生成器怎么样?有谁知道这样的野兽是否存在?

4

1 回答 1

3

我喜欢它,但是您必须确保返回 HasFromAndSelect 之类的类型或类似的东西,这样您就不会以fq.SELECT(Foo.ID).SELECT(Foo.Age).WHERE(Foo.Age > 22)orfq.WHERE(Foo.Age > 22).SELECT(Foo.ID)等​​结尾。

还有更多需要考虑的问题,包括大写锁定模式伤害了我的眼睛这一事实:)

于 2008-10-29T08:31:08.030 回答