edmx資料庫
❶ ASP .NET MVC5 如何通過資料庫生成model
可以使用Entity Framework的Db First模式生成model。
第一步:創建
ASP .NET MVC項目
第二步:創建實體模型
在項目上右擊 添加新建項目→Ado.Net實體數據模型
如下圖所示:
❷ LINQ TO SQL 和 ADO.NET ENTITY 有什麼區別呢
LINQ to SQL和Entity Framework都是一種包含LINQ功能的對象關系映射技術。他們之間的本質區別在於EF對資料庫架構和查詢的類型實行了更好的解耦。使用EF,查詢的對象不再是完全對應資料庫架構的C#類,而是更高層的抽象:Entity Data Model。這提供了額外的靈活性,但是在性能和簡單性上面也會有所損失。具體二者之間的區別如下:
復雜度:支持越多的特性就會越復雜。LINQ to SQL所支持的特性比較少,所以也就相對不太復雜;而EntityFramework支持的特性比較多,所以相對比較復雜。
模型:LINQ to SQL在數據表與類之間提供了一對一的映射。如果你有Customers,Orders, 和Lineitems表,你就會有Customer,Order, 和Lineitem類來匹配每一個表。EntityFramework可以使你有一個Customer類,而這個類可以匹配多個表。這就意味著公司名可以 在一個表中,但是地址是在另一個表中,而電話號碼又在另一個表中,等等。
資料庫伺服器:LINQ to SQL只支持Microsoft SQL Server 2000及之後的版本,但即使是SQLServer2000也有很多限制。EntityFramework可以支持IBMDB2, Sybase SqlAnywhere, Oracle, SQLAzure,還有其他很多。
開發時間:LINQ to SQL很容易學,開發起來也很快,但是LINQ to SQL有一些限制,在開發較復雜的應用時可能會產生問題。EntityFramework的能力更強,雖然學習及應用起來比較慢,但是對更多的特性的支持使得在開發較復雜的應用時可以使問題最小化。
繼承:LINQ to SQL支持TPH,而EntityFramework支持TPH和TPT,並且對TPC也部分支持。
文件類型:LINQ to SQL使用包含XML的資料庫標記語言(DBML)文件來映射entity與數據表。EntityFramework 使用四個文件。第一個是Entity Data Model (EDMX),這個是在設計器中使用的。在編譯時EDMX文件產生了其他三個文件。另外三個文件中,第一個是ConceptualSchema Definition Language(CSDL)文件,其包含概念模型的XML定義。第二個是SchemaDefinition Language(SSDL)文件,其包含存儲模型的定義。第三個文件是Mapping Specification Language(MSL)文件,其包含概念模型與存儲模型之間的映射。
復雜類型支持:比如說,一個客戶有電話號碼,但你想要電話號碼定義為國家區號,地區號,城市區號,號碼和分機號。LINQto SQL不支持這種復雜類型,而EntityFramework支持。
查詢能力:LINQ to SQL通過DataContext對資料庫進行查詢。EntityFramework通過ObjectContext通過LINQto Entities進行查詢。Entity Framework還提供了ESQL,它是一種類似SQL的查詢語言,很適合在模型定義中定義查詢。EntityFramework還包含了 ObjectQuery類,用於對象服務在運行時動態創建查詢。最後EntityFramework還包含EntityClientProvider,它 用於對概念模型進行查詢。
性能:LINQ to SQL和Entity Framework第一次執行查詢的時候都比較慢,但之後性能都讓人比較滿意。EntityFramework性能要稍微優於LINQto SQL。
完善:微軟在發布了Entity Framework之後就停止了發布新的LINQ to SQL,但由於LINQto SQL的簡單性,它還是很受歡迎的,所以微軟仍將繼續對LINQto SQL的用戶進行支持與反饋,但是LINQto SQL將不再發布新版本進行完善。
由模型生成資料庫:LINQ to SQL沒有能力由模型生成資料庫。Entity Framework支持兩種類型的開發模式,資料庫優先和編碼優先。資料庫優先開發,資料庫已經存在,所以不需要由模型生成資料庫。編碼優先,你要先創建你的模型,然後由模型生成資料庫。