ASP.Net MVC学习 Code-First Demo

为了学习EF Code-First 方法,咱们首先须要添加引用,EntityFramework.dll,点击下载web

  1.新建MVC web,咱们须要在Web.config文件中写好数据库链接字符串 。 sql

 

<connectionStrings>
  <add name="Test" connectionString="Data Source=YFZX11179-PC;Initial Catalog=Test;Integrated Security=True;" providerName="System.Data.SqlClient" />
    </connectionStrings>
数据库

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

相关文章
相关标签/搜索