2012-01-24 68 views
2

在實際的ASP.NET MVC應用程序中創建數據訪問層的建議方式是什麼?是EF嗎? Ef Code First? NHibernate的?任何其他想法?ASP.NET MVC中的數據訪問3

謝謝&問候

+0

NET ORMs:http://stackoverflow.com/questions/1377236/nhibernate-entity-framework-active-records-or-linq2sql/ –

回答

4

有沒有推薦的方式。

我喜歡EF代碼第一次這樣做,因爲

  • 的源代碼是很乾淨,容易閱讀
  • 這是很容易簡單地改變ConnectionString中,並生成一個新的數據庫,如果不是已經存在
  • 如果您的模型已更改(無需重新創建數據庫),則易於遷移數據庫使用EntityFramework.SqlMigrations
  • 如果您的數據庫已存在,則可以使用Entity Framework Power Tools從您現有的數據庫中生成模型和數據庫上下文
-1

嘗試LINQ,我看到的大多數MVC產品都使用LINQ。

+3

LINQ是一個與數據訪問層交互的工具。它不會創建圖層本身。 –

+0

EF Code First對現實生活中重度使用的網站有多強大? – Bill

+0

LINQ是一種編程模型,它將查詢作爲一流的概念引入到任何的Microsoft .NET語言中。 – RickAndMSFT

1

我喜歡使用Model First,因爲它允許我在我看來最自由地進行設計和實現。它也使得改變數據庫設計變得非常容易。

+0

我也首先喜歡模特,但我認爲我們是少數派(不是大多數人必然是正確的)。我認爲你可以從通過Model進行一些工作中受益。 – RickAndMSFT

1

沒有,stackoverflow充滿了沿着各種路線走下坡路的人們,所以無論你做出哪種選擇,你都可以得到幫助。

最好的建議,嘗試使用幾個似乎脫穎而出的方法做一些小探索網站。

+0

不幸的是,真正的障礙並不傾向於在小型測試項目上顯示,而是在真實項目上顯示真實數據。 – Jan

+0

不,但大多數方法都有各種障礙....沒有完美,但它確實告訴你發展的風格是否符合你的想法。但是,是的,有一些併發症在蔓延! –

+0

對每個原型類型都是一個好主意 - 即使你不會發現你在真實應用中遇到的很多問題。 – RickAndMSFT

0

MS上的MVC大師(寫MVC的人)似乎都在使用實體框架。話說回來,你可以使用任何ORM(或真的是你想要的任何數據訪問技術)作爲MVC犯規實際上是在所有指定有關訪問數據

+0

1.並非所有MS的MVC人都只使用EF。 2.並非所有的MVC大師都爲MS工作(實際上大多數都不)。你是對的,我們不告訴人們使用什麼。 – RickAndMSFT

3

這一切都取決於你的需要的方式事情:

  • NHibernate的是一個大的社區比較成熟的ORM

  • 實體框架現在正很好的支持,你還可以找到大量信息(check Julie Lerman blog

兩者均支持從數據庫生成代碼。

代碼優先:允許您從域模型創建數據庫模式。如果你不想打擾數據庫,這很好。 NHibernate也可以做到這一點。

爲了幫助您決定使用哪種方式實體框架

enter image description here

Source

還有很多其他偉大的ORM:

Subsonic

Stackoverflow's ORM Dapper如果性能是一個重要的標準有一個小笨蛋在網站上的hmark