2016-08-31 58 views
1

警告:Noob問題!MVC EF和具有複雜查詢的大型數據集

我被推入使用MVC & EF爲我的項目;這兩者對我來說都是新的。 MVC部分我沒有太強調,但EF困擾我,有一些關鍵概念,我的頭還沒有。

我的數據庫是數百萬記錄的存儲庫,用戶需要執行非常複雜的搜索。

似乎我所閱讀的大部分文章都將數據庫連接到應用程序的EF並過濾數據客戶端。這對我來說只是一個'不',我無法想象我是唯一的一個。

然後,我看到一些文章,談論推動過濾器回到數據庫使用LINQ/IQueryables。 這聽起來更合理,至少我不會帶回比我需要更多的數據。 但我的更復雜的查詢將是噩夢建立在LINQ(我想象)。

不過,困擾我的是,我有SQL Server爲我完成所有繁重的工作。存儲程序可以利用最強大的機制來處理最複雜的可疑問題。這不就是SQL Server誕生的原因嗎?

我還在想用我的舊Skool大腦推進。

  • 構建反映我的數據表/結構的模型。
  • 填充我的模式「手動」通過存儲過程

誰能指出哪裏我可能會錯誤地觀看這一切? 我知道Google上有大量的信息,但大多數只是跳到如何在技術上做'A'......而很少討論'爲什麼'我們正在做'A'或其他選擇。

感謝您的任何評論!

+0

很難找到帶有複雜數據庫的brownfield應用程序的強大示例,這些數據庫有時不適用於EF,正如您所說,有時這可能會導致生成完全荒謬,煩瑣的查詢。但是,您可以使用存儲過程來執行返回所需模型結構的查詢。看到這個相關的問題的例子:http://stackoverflow.com/questions/20970416/using-stored-procedure-in-entity-framework –

+0

我不知道任何人會帶來數百萬記錄客戶端。 Lot是用於在那裏分頁的工具。是的,如果你有太複雜的東西可以使用SP,但是LINQ非常強大。對於許多人來說,從對象和關係數據的角度來看,這是一個令人不舒服的範式轉變。 –

回答

0

點1:

是的,你可以爲你mentioned.That是Build Models that reflect my data tables/structure。那意味着你要手動手動創建的一切啓動它。這是非常棘手的任務,因此你已經擁有了db.So我想建議使用EntityFramework Reverse POCO Generator從你的db中生成所需的模型。

點2:

是的,你可以使用Stored procedures與EF代碼first.But要小心,不要在這個時候使用EF core。 B'cos SP支持現在處於初級階段。因此,您可以從EF 6.X開始,隨後可以隨着EF核心的成熟,您可以輕鬆移動到EF core世界。

3點:

你並不需要擔心的,你必須顯示在UI上記錄的大小。 B'cos有許多複雜的UI組件,這些組件用於在UI上顯示海量數據。您可以選擇freepaid一次。

+0

謝謝桑帕斯(斯蒂芬和史蒂夫也) – SimonB

+1

謝謝桑帕斯(斯蒂芬和史蒂夫也)。 對我來說,這裏最主要的是沒有人因爲我提出愚蠢的問題而尖叫着 - 知道我的頭並不太離開理性總是一個好的開始。 「手動創建所有東西」有點令人擔憂。我想知道如果我可以從DB創建我的模型,但是從數據庫中「分離」它,所以它只是孤立的。我的頭告訴我,我應該可以做到這一點,但POCO發生器鏈接鏈接點類型,我應該看看,而不是。再次,謝謝。 – SimonB

+0

熱烈歡迎您!祝你好運 ! ::) – Sampath