Entity Framework 6 (第一篇) 採用Model-First方式創建資料庫【整理中非最終版】

来源:http://www.cnblogs.com/taotaozujinet/archive/2017/11/14/7832122.html
-Advertisement-
Play Games

開發環境:VS2017 資料庫:SQL 2012 本文是學習EF的第一篇筆記,參考lloydsheng的帖子實踐,總結記錄。 一、創建項目 先創建一個空白的解決方案,後續關於EF入門筆記基於此項目完成 。 二、安裝 使用NuGet下載安裝EntityFramework到項目中,如果不會使用NuGet... ...


開發環境:VS2017

資料庫:SQL 2012

本文是學習EF的第一篇筆記,參考lloydsheng的帖子實踐,總結記錄。

一、創建項目

先創建一個空白的解決方案,後續關於EF入門筆記基於此項目完成 。

image

二、安裝

使用NuGet下載安裝EntityFramework到項目中,如果不會使用NuGet可以百度.如果是VS2010 需要先安裝NuGet工具

         image

本篇使用VS2017可以直接聯網安裝.

         image

安裝完成後就可以在引用列表中看到已經部署好的EntityFramework庫文件.

        image

 

 

三、添加實體對象模型

1.在EFProject 上右鍵,選擇Add,點擊New Item..(或者使用快捷鍵Ctrl+Shift+A)。

image

2.點擊C#節點下麵的“數據”Data子節點。

3.選擇ADO.NET Entity Data Model 模板。

4.將名字改為“OrderDB.edmx”,點擊“Add”按鈕。

image

5.VS將會顯示Entity Data Model Wizard.你可以選擇模型的來源。

6.選擇“Empty Model”,點擊“Finish”按鈕。

image

OrderDB.edmx將會添加到你的項目中,同時會顯示Entity Framework 設計器。

image

四、創建實體關係

下麵將會創建user實體以及它與addresses實體的關係,首先創建user實體。

image

1.在Entity Framework 設計器右鍵,Add->Entity。

2.你會看到“Add Entity”對話框,輸入實體名。需要註意的是,當你輸入實體名時,系統會自動產生實體集合的名稱(實體名是一個代表一條紀錄的類的名稱,實體集後則是一個代表一組紀錄的類的名稱)。

3.VS預設會產生一個名為Id的主鍵。如果把你不想產生主鍵,不選擇“Create key property”即可。本例中需要主鍵,所以保持選擇狀態。

image

這裡:StoreGeneratedPattern的設置為Identity,便於自增。

4.點擊“OK”,UserAccout實體將會添加到實體圖表中。

5.接下來是給實體添加屬性。這些屬性將會映射到數據表中的欄位。我們將會添加FirstName和LastName屬性。

6.在UserAccount上右擊。選擇Add->Scalar property。

7.將屬性名改為FirstName。

8.在屬性視窗中,將最大長度設為50,數據類型不用改,預設是String.

9.以同樣的方式添加另一個名為LastName的屬性,最大長度也設為50。

image

10.模型瀏覽視窗中,在“複雜類型”Complex Types 節點上右擊。點中Coomplex Types後,在彈出的菜單中選擇“Create Complex Type”。

image 

11.將複雜類型的名字改為 AuditFields。

12.右擊模型瀏覽視窗的AuditFileds複雜屬性,在彈出的菜單中,選擇Add->Scalar Property->DateTime。

13.將名字改為“InsertDate”。

14.用同樣的方式添加UpdateDate屬性到該複雜類型中。

15.接下來你可以添加該複雜類型到UserAccount實體了,右擊UserAccount實體,在彈出的菜單中選擇Add->Complex Property

16.將名字改為“AuditFileds”,數據類型預設為AudtFields

17.在設計器上右擊,彈出的菜單中選擇Add->Entity.

18.實體名字改為“Address”,點擊“OK”。

19.給Address實體添加Address1,Address2,City,State和Zip屬性,所有的屬性都為String類型,數據長度分別為:50,50,50,2和5。

20.在屬性視窗中,將Address2的Nullable設置為True,其他幾個屬性都是必填的。

21.同樣,給Address實體添加AuditFileds屬性。

下麵就是建立UserAccount和Address實體之間的關係了。

22.右擊UserAccount實體,彈出菜單中選擇Add->Association。

image

23.你會看到在Add Association視窗預設設置好了UserAcccount和Address一對多的關係,如果你要設置不同類型的關係,在Mutiplicity下拉框中選擇就可以了,本例中保持預設就可以。點擊“OK”後,你會看到Address表多了一個UserAccountId屬性。

五、生成資料庫

實體已經創建好了,下麵是創建資料庫了。在VS操作這些非常方便,它將會產生用來創建表,索引和表關係的DLL語句腳本。

1.在設計器上右擊,選擇Generate Database from Model.將會出現Generate Database Wizard視窗。

image

2.點擊“New Connection”按鈕。

image

3.輸入Server name,選擇Windows Authentication 或 SQL Server Authentication,這取決於你資料庫系統的連接方式。

image

4.資料庫名輸入“OrderSystem”,點擊“OK”。

語句就生成OK了

image

雙擊生成的SQL文件,鏈接資料庫,運行

image

運行代碼

image

生成成功後就可以查看資料庫表結構了。

image


共用鏈接:https://pan.baidu.com/s/1geA4Mzx 

提取密碼: firp

打賞支付寶:

QQ截圖20171114152709


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • "sweetalert": "^1.1.3",記住這個參數,Abp中這個組件只能用這個版本,高於它的message會沒有效果,切記 ...
  • 回到目錄 進行dotnetcore之後,各種對象都是基於DI進行生產的,這就有了對象的生命周期一說,早在autofac里也有相關知識點,這與Microsoft.Extensions.DependencyInjection是完全溫和的,方便大家理解,在講今天的組件化之前,先對DI的三種生命周期進行理解 ...
  • 大致要實現的 效果如下 1,添加Controller(用到的X.PagedList 註意到nuget添加) 2,視圖 另外還有_createTaskPartial,_EditTaskPartial 等,這裡就不貼代碼了 以上。。。 參考http://www.jianshu.com/p/620c20f ...
  • 最近在練習EF的過程中,實現將Linq返回的結果綁定到Combox時出錯。 錯誤提示如下: System.NotSupportedException:“Data binding directly to a store query (DbSet, DbQuery, DbSqlQuery, DbRawS... ...
  • 一,一些相關解釋 Service 在應用服務層也就是application層。應用服務用於將領域(業務)邏輯暴露給展現層。展現層通過傳入DTO(數據傳輸對象)參數來調用應用服務,而應用服務通過領域對象來執行相應的業務邏輯並且將DTO返回給展現層。 也就是這樣避免了應用服務層和展現層的,直接數據交互, ...
  • Parallel Programming-實現並行操作的流水線(生產者、消費者) ...
  • 原文鏈接:http://www.mono-project.com/news/2017/11/13/mono-interpreter/ Mono即將通過它的JIT編譯器和靜態編譯器以及一個.net解釋器以帶來一些新的方式來運行你的代碼. 在2001年Mono項目誕生之時,我們為.net指令集實現了一個 ...
  • 返回總目錄 四、Long Parameter List(過長參數列) 太長的參數列難以理解,太多參數會造成前後不一致、不易使用。 1、一般情況來說,如果參數多於3個,就可以考慮使用對象了。將函數所需要的參數封裝在一個新類中,將這個類當做參數。 2、如果方法的參數數目不定,且參數類型一致,也可以使用p ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...