Entity Framework筆記(二)_Database First使用方式

 

EntityFramework 主要提供的Workflows有如下幾種
1. Database First
2. Model First
3. Code First




所謂DB First也就是EF跟既有的資料庫連接後對應資料表去生成相應Model Class
而這些Model類別會再去衍生出相應Entities跟Context的類別
在Model這一層事實上是Read-Only的任何異動都必須從DB來去下手


這裡準備好一個.net framework 的 ConsoleApp專案

並且準備好你的DB和相應Table

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
USE [Master];
GO
CREATE DATABASE DatabaseFirstTestDB ON ( NAME = DBFirstData, 
                    /* Point to the directory wherer you want to store your db files */
                    FILENAME = 'E:\IT_Db\DBFirstTest.mdf',
                    SIZE = 10MB,
                    MAXSIZE = 50MB,
                    FILEGROWTH = 5MB )
                    LOG ON ( NAME = DBFirstLog,
                    /* Point to the directory wherer you want to store your db files */ 
                    FILENAME = 'E:\IT_Db\DBFirstLog.ldf',
                    SIZE = 5MB,
                    MAXSIZE = 25MB,
                    FILEGROWTH = 5MB);
GO
USE [DatabaseFirstTestDB];
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Contact](
    [Id] [int] NOT NULL PRIMARY KEY,
    [Name] [nchar](30) NULL,
    [Nickname] [nchar](30) NULL,
    [Age] [numeric](18, 0) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[ContactAddress](
    [Id] [int] NOT NULL PRIMARY KEY,
    [ContactId] [int] FOREIGN KEY References Contact(Id),
    [AddressLine1] [nchar](20) NULL,
    [AddressLine2] [nchar](20) NULL,
    [City] [nchar](20) NULL,
    [StateProvince] [nchar](10) NULL,
    [PostalCode] [nchar](10) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[ContactEmail](
    [Id] [int] NOT NULL PRIMARY KEY,
    [ContactId] [int] FOREIGN KEY References Contact(Id),
    [Email] [nvarchar](100) NULL
) ON [PRIMARY]
GO


針對專案右鍵新增項目



選ADO.NET實體資料模型(Entity Data Model)




在此選擇「來自資料庫的EF Designer」


點選「新增連接」
選擇資料來源為Microsoft SQL Server
按繼續












預設會生出edmx的檔案




在Visual Studio中
可以透過快捷按鍵來去開起顯示兩個Entity設計工具(EF Designer)相應的設計輔助檢視視窗資訊




























留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

Architecture(架構) 和 Framework(框架) 有何不同?_軟體設計前的事前規劃的藍圖概念

(2021年度)駕訓學科筆試準備題庫歸納分析_法規是非題