为了学习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例子这里计算讲完了。