爲了學習EF Code-First 方法,咱們首先須要添加引用,EntityFramework.dll,點擊下載web
1.新建MVC web,咱們須要在Web.config文件中寫好數據庫鏈接字符串 。 sql
|
2.這個數據庫中,有表guests,字段屬性name,phone。ide
首先先看下面的代碼,新建類 mode學習
public class guests { [Key] public string name { get; set; } public string phone { get; set; } }
按照Code-First規則,一旦運行此程序,就會生成表名爲guests、 表裏面有name,phone三個字段,其中name是guests表的主鍵。若是你不但願此數據表名爲guests,能夠經過在類名前加上[Table("guestsA")],則生成的數據表名爲guestsA。this
3.這裏,咱們寫了一個類 mytestDbContext ,繼承類DBContext。spa
using mytest2.Models; using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Web; namespace mytest2.DBContext { public class mytestContext:DbContext { public mytestContext():base("name=Test") { } public IDbSet<guests> guests { get; set; } } }
這裏,咱們寫了一個類 mytestDbContext ,繼承類DBContext。code
其中 DbContext : IDisposable, IObjectContextAdapterblog
接口 IObjectContextAdapter的原型繼承
public interface IObjectContextAdapter
{
System.Data.Objects.ObjectContext ObjectContext { get; }
}
所以,ObjectContext是師祖。
這裏須要注意一下,name="XXX"的名稱要與鏈接數據庫的名稱同樣,不然可能會有小問題出現。
「this.Database.CreateIfNotExists()」表示若是若是不存此數據庫,就去建立數據庫。
4.在下面,咱們就會用到這些方法去操做數據庫的內容。
(1)獲取數據
mytestContext db = new mytestContext(); guests guest = db.guests.FirstOrDefault(); 直接使用sql //直接使用Sql 語句操做數據庫 db.Database.ExecuteSqlCommand("select top(1) * from guests");
(2)添加數據
var guests = new guests () { name= "guodaqin", phone= "135XXXXXXXX" }; db.guests .Add(guests ); db.SaveChanges(); //直接使用Sql 語句操做數據庫 db.Database.ExecuteSqlCommand("insert into guests (name,phone) values({0},{1})", new object[] { "guodaqin", "135XXXXXXXX" });
(3)修改數據
guests guest= db.guests .Find(name); guest.name= "wahah"; db.Entry(guest).State = EntityState.Modified; db.SaveChanges();
(4)刪除數據
guests guest= db.guests .Find(3); if (guest!= null) { db.Entry(guest).State = EntityState.Deleted; db.SaveChanges(); }
OK,Code-First例子這裏計算講完了。