一、EF Code First簡介
待補充
二、EF Code First第一個簡單一實例
1、開發環境及資料庫說明
開發環境:Visual Studio 2010 Ultimate sp1 + Sql Server 2008 R2
資料庫:Northwind
2、執行個體代碼結構
結構說明:
App:控制台應用程式
Data:資料訪問
Domain:實體類
3、安裝Entity Framework
在Visual Studio編輯器中點擊Tools -> Library Package Manager -> Package Manager Console,在Package Manager Console視窗中執行下面語句,安裝最新版Entity Framework。
PM> Install-Package EntityFramework
App層和Data層分別添加對EntityFramework的引用:
在App層安裝EntityFramework之後,將自動添加App.config和packages.config檔案。
App.config配置Entity Framework版本資訊及資料庫連接資訊,修改其中資料連線資訊以適應本地實際環境。
1 <?xml version="1.0" encoding="utf-8"?>
2 <configuration>
3 <configSections>
4 <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
5 <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.3.1.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
6 </configSections>
7 <entityFramework>
8 <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
9 <parameters>
10 <!--<parameter value="Data Source=(localdb)\v11.0; Integrated Security=True; MultipleActiveResultSets=True" />-->
11 <parameter value="Data Source=(local); User ID=sa; Password=; MultipleActiveResultSets=True" />
12 </parameters>
13 </defaultConnectionFactory>
14 </entityFramework>
15 </configuration>
packages.config現實當前項目使用的package:
1 <?xml version="1.0" encoding="utf-8"?>
2 <packages>
3 <package id="EntityFramework" version="4.3.1" />
4 </packages>
4、執行個體代碼
Domain中Category.cs
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 namespace Northwind.Domain.Entities
7 {
8 public class Category
9 {
10 /// <summary>
11 /// 分類ID
12 /// </summary>
13 public int CategoryID { get; set; }
14
15 /// <summary>
16 /// 分類名稱
17 /// </summary>
18 public string CategoryName { get; set; }
19 }
20 }
Data中NorthwindContext.cs
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 using System.Data.Entity;
7
8 using Northwind.Domain.Entities;
9
10 namespace Northwind.Data
11 {
12 public class NorthwindContext : DbContext
13 {
14 public DbSet<Category> Categories { get; set; }
15 }
16 }
App中Program.cs
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 using Northwind.Data;
7 using Northwind.Domain.Entities;
8
9 namespace Northwind.App
10 {
11 class Program
12 {
13 static void Main(string[] args)
14 {
15 Category c = new Category() { CategoryName = "電子數位" };
16
17 using (NorthwindContext db = new NorthwindContext())
18 {
19 db.Categories.Add(c);
20 db.SaveChanges();
21 }
22
23 Console.WriteLine("Finish");
24 Console.ReadKey();
25 }
26 }
27 }
5、運行說明
由於在上面的資料庫連接字串中並未包含指定的資料庫名稱,運行成功之後,將在本機資料引擎中建立如下資料庫和表:
資料庫名稱:Northwind.Data.NorthwindContext
表名稱:Categories
6、範例程式碼附件
Northwind.rar