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例子這裏計算講完了。

相關文章
相關標籤/搜索