2011-11-14 36 views
1

假設微軟說我們都應該使用實體框架,使用LINQ(to Entities?)作爲查詢語言。SQL Server應該本機支持LINQ查詢語言嗎?

如果LINQ作爲查詢語言是對SQL的改進,那麼我說數據庫應該原生支持它,而不是將LINQ轉換爲SQL。

爲了向後兼容,他們可能還想支持古老的SQL呢?鑑於這不會是一個小小的增強,我不會屏住呼吸。但是,如果我們想到的理想和非常長期,爲什麼不呢?

我是否認爲如果實用這將是一件好事?我期待「是」作爲可能的答案,並且有幾個選票可以結束。

回答

2

SQL與relational data model(投影,連接等)緊密相關,而LINQ是執行僅抽象查詢的數據操作的更一般化的方式。另一方面,LINQ直接在.Net類型上運行,並使用它們的方法和屬性,而SQL data types(除了xml和地理/幾何)是大多數原始數據類型,不支持任何種類的OOP。

這解釋了爲什麼有許多查詢不能直接從LINQ轉換到SQL,並且本機對LINQ的支持不會改善這種情況。

但是,編寫支持LINQ查詢的解析器,將直接將LINQ查詢轉換爲query plan,作爲經典SQL的替代方案,LINQ旨在提供更好的智能感知支持。

+0

我想我的反應是,LINQ語法仍然可以在數據庫中實現,以與LINQ當前對.NET對象起作用的相同方式處理數據庫對象。我正在大聲思考,並希望得到別人對這個問題的想法。很好的答案。 – ChadD