2014-05-11 15 views
0

我想了解實體框架。要使用它來查詢數據庫,我必須學習LINQ。我的問題在於:LINQ是否提供了超過手工編制SQL查詢的好處?

LINQ是不是過於複雜?我沒有看到它的任何用處,相反我認爲手工製作SQL查詢要好得多。

我花了很多時間學習ASP.NET WebForms,事實證明,我擔心的實際上是在那裏,所以這是浪費時間。它看起來像LINQ使ASP.NET WebForms犯了同樣的錯誤,試圖通過爲他提供html來幫助開發人員,並強加HTTP的無狀態本質。

那麼,對於這個LINQ和實體框架可以做的事情有什麼見解?

+0

你的問題似乎是_「爲什麼使用LINQ,是不是更好的手工SQL查詢?」_,這是基於意見的。請解釋你真正想知道的。 – CodeCaster

+0

@CodeCaster是的。我認爲你的建議是正確的。我想知道我是否應該花時間,讓更多的頭髮灰色學習LINQ和實體框架? – user2638682

回答

1

我也來自多年來使用ASP.NET Web窗體的背景。一旦引入MVC和剃鬚刀,它就像是立即解放了一些網絡形式,控件以及感覺像一個複雜的客戶端/服務器模型帶來的艱苦工作。

LINQ和實體框架不是MVC的一部分。 LINQ是一個屬;可用於從簡單字符串處理到複雜數據處理的多種級別的通用查詢語言。 LINQ也可以與lambda表示法一起使用;我發現後者更容易和模式自然。

EF允許您從代碼開發所有數據庫組件。我發現最初從SQL中移開很奇怪,但我很高興能夠完成轉換。

我認爲你在問一個哲學問題。我在20世紀60年代後期開始編程,並看到許多轉變和技術變化。我發現這種變化很有價值。

+0

感謝您的回覆。無論我讀什麼文章或書籍或代碼示例,我都會看到這個linq的東西,而我總是跳過那個讓事情不清楚的部分。所以我認爲我應該學習它。但你可以說我的蛇是被asp.net咬傷的,現在我擔心微軟提供的所有東西..但是,聽到你對它感到滿意,這真是太好了......所以我現在應該借給你一些時間。 – user2638682

+0

這絕對是值得的,但期待一些痛苦。 –

+0

yes已經閱讀,看起來相當困難和困惑.. – user2638682

0

WebForms並沒有那麼糟糕。它的確如此構建:摘要對於WinForms開發人員來說,HTTP無狀態的模糊性,因此他們可以在不改變太多WinForms工作流的情況下跳入網絡時代。

實體框架和其他ORM提供相同級別的抽象。您通常不希望手動編寫SQL,連接到數據庫,拉入查詢結果並將其映射到對象中。這正是Entity Framework爲你做的,是的,你必須學習LINQ來做查詢(儘管你是can still use SQL)。

您可以使用LINQ更多,它不以任何方式綁定到數據庫。反之亦然:EF允許您在靜態類型代碼中表達您的查詢,在運行時,這些查詢將被轉換爲適當的SQL。

+0

我認爲你對asp.net webForms的解釋是有道理的。但無論如何,它充滿了糟糕的想法和設計,簡單的任務已經超出了限制webControls和viewState,它限制了頁面上的Ajax活動。我已經用asp.net WebForms開發了一個完整的社交網絡,現在我不得不在asp.net MVC或PhP中重寫它,因爲我想同時需要多個ajax活動。所以我想知道linq可能不是用這種愚蠢的想法設計的。 – user2638682

+0

只要你遵循任何圖書館創作者的思維,你就不會遇到任何麻煩。 WebForms不是爲你試圖用它做的,所以很難。當你想要做非專門設計的東西時,實體框架可能會引發特定的問題,但是當這種情況發生時,通過繞過LINQ-to-SQL部分和手動查詢,很容易避免。對LINQ本身並沒有多少責任,值得一試,因爲它可用於.NET框架和第三方庫的各個部分。 – CodeCaster

+0

對不起,我沒有提到asp.net Ajax:D:D:D:D,是的,你是對的,這就是我想知道什麼是背後的邏輯和限制,但我從來沒有從別人那裏得到它,直到我摔倒。 :( – user2638682

相關問題