首页 > 技术文章 > EF框架对数据库的操作

lixueying 2015-11-03 17:19 原文

基于网页的数据库操作:

 

传统方法:ADO.NET

   通过ADO.NET对象调用SQL语句实现查询、修改、删除与插入新记录。

 

新的方法:ef

将传统的数据库转换为面向对象的实体(Entity),变成类的定义(数据库对应实体对象,传统table表对应表对象)

微软提供了:EntityFramework简称EF

           实体框架

 

EF的好处:

  避免SQL语法与C#语法混用;

  全部采用可视化面向对象的语法。

  都有实时的代码提示。

 

数据库建模的两种方法:

DB-FIRST  先有数据库,后有模型

       (一般采用DB-FIRST)

CODE-FIRST 先建模,后根据模型生成数据库。

 

 

   xsDBEntities mydb = new xsDBEntities( );

  //生成实体类的一个对象mydb

 

   xsBASETABLE myrecord = mydb.xsBASETABLE.First( );  //找到第一条记录

   //生成学生基础表的一条记录,对应要删除的记录

 

        mydb.xsBASETABLE.Remove(myrecord);   //删除模型中指定记录

        mydb.SaveChanges();

    //将对模型的操作保存到SQL SERVER中。

 

 

 

 protected void Button1_Click(object sender, EventArgs e)

    {

       //添加记录

        xsDBEntities mydb = new xsDBEntities();

        xsBASETABLE myrecord = new xsBASETABLE( ) { xh="004",name="dddd", address="一栋101" };

    //新建表的一条记录,直接在构造函数后赋值

        mydb.xsBASETABLE.Add(myrecord);

        //将新记录添加到模型中

        mydb.SaveChanges();

        //将对模型的操作保存到SQL SERVER中。

    }

 

 

    protected void Button3_Click(object sender, EventArgs e)

    {

       //修改记录

        xsDBEntities mydb = new xsDBEntities();  //新建实体对象

        xsBASETABLE myrecord = mydb.xsBASETABLE.First();   //找到第一条记录

        myrecord.xh = "008";   //修改该记录的各个字段

        myrecord.name = "LIMING";

        myrecord.address = "四栋201";

        mydb.SaveChanges();

        //将对模型的操作保存到SQL SERVER中。

    }

 

  

 

    protected void Button4_Click(object sender, EventArgs e)

    {  //查询代码

        xsDBEntities mydb = new xsDBEntities();  //生成实体对象

        xsBASETABLE myrecord = mydb.xsBASETABLE.First( ); //找到需要的记录

        this.TextBox1.Text = myrecord.name;  //将该记录的某字段赋值给文本框

    }

 

 

 

 protected void Button4_Click(object sender, EventArgs e)

    {

        //查询任意条件的代码

        xsDBEntities mydb = new xsDBEntities();  //生成实体对象

        var myrecord = mydb.xsBASETABLE.

Where( c => c.xh == "005" && c.name="dddd"  );

//找到满足条件的记录集合

   //var代表任意类型的变量

        this.TextBox1.Text = myrecord.FirstOrDefault().name;

 //将满足条件的记录集合中的第一条记录的某字段赋值给文本框

    }

 

 

//多记录删除:

    xsDBEntities mydb = new xsDBEntities();

        var[U1]  myrecord[U2]  = mydb.xsBASETABLE.Where( n[U3] =>[U4] n.xh==[U5] "004" );  //找到满足条件记录的集合

        foreach(var temp in myrecord )  //对集合中每一个对象循环操作

        {

           mydb.xsBASETABLE.Remove(temp);   //删除模型中指定记录

        }

        mydb.SaveChanges();

        //将对模型的操作保存到SQL SERVER中。


 [U1]代表任意数据类型。

Var A=3计算机知道a是整型。

 [U2]变量集合

 [U3]任意变量名称

 [U4]Lambda 表达式

 [U5]是C语言的句子。

推荐阅读