【发布时间】:2010-10-05 00:25:37
【问题描述】:
我一直想知道是否有任何代码能够以某种对象树的形式表示 SQL,这些对象树可以被组装、修改并最终呈现为有效的 SQL?
在我看来,它可能看起来像那样......
var stmnt = new Statement();
stmnt
.AddMaster("Customer")
.Show("Firstname, "Lastname")
.AddJoin("Address", "ID", "CustomerID")
.Show("Street", "City");
stmnt.WhereStatement()
.AddParameter("Address.City", Op.Equal);
string sql = stmnt.Generate();
// select a.FirstName, a.LastName, b.Street, b.City
// from Customer a
// join Address b on b.CustomerID = a.ID
// where b.City = :p1
这只是一个例子,外面的情况可能完全不同,但是是的,我很想听听这方面的情况。
更新:
我知道使用 ORM 技术从数据库中获取结果的多种可能性,但我追求的是 SQL 本身的模型。我知道抽象级别非常低,但它可能允许多个协作者可以处理 SQL 语句(多个连接,多个 where),然后可以在构建阶段结束时“渲染”。
【问题讨论】: