【.NET-EF】Entity Framework学习笔记2 - 增删改(没查询)

学习描述:用EF就像是省略了做实体类和DAL类,感觉是很方便,废话不多说,直接写步骤:

1.创建EF的edmx文件

这个其实在笔记1已说过,不过有些细节也要说,所以再说一遍,这里使用的是EF 6.1版本的。

建了个商品表,创建文件之前,要有一个数据表,我在本地建个xitong数据库,建了个商品表,如下:

CREATE TABLE [dbo].[xt_product](
    [pid] [int] IDENTITY(1,1) NOT NULL,
    [code] [nvarchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [title] [nvarchar](255) COLLATE Chinese_PRC_CI_AS NULL,
    [point] [nvarchar](500) COLLATE Chinese_PRC_CI_AS NULL,
    [description] [text] COLLATE Chinese_PRC_CI_AS NULL,
    [prise] [money] NULL,
    [createTime] [datetime] NULL,
    [state] [bit] NULL,
    [remark] [nvarchar](500) COLLATE Chinese_PRC_CI_AS NULL
)

 

好了,开始建我的edmx文件,我在项目建个文件夹放文件,就叫EntityFramework,再右键 - 添加 - 新建项 - 数据 - ADO.NET实体数据模型(连接数据库步骤省略)

要记得自己写的2个类名

  • 一个是  将Web.config中的连接设置另存为  的名字,这个是用操作数据库的方法的,写成: xtSQL
  • 一个就是你的数据表名,会变成实体类名,而且能在生成的文件.tt里看得到实体类,写成:   xt_productEF

 

2.增删改代码(已测试可以用,建个页面调用就OK了。)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using xtWeb.EntityFramework; //凡事需要先using

namespace xtWeb.Models
{
    public class product
    {
        xtSQL xtsql = new xtSQL();//操作类
        /// <summary>
        /// 新增(单个)
        /// </summary>
        /// <param name="ef"></param>
        /// <returns></returns>
        public bool add(xt_product ef)
        {
            xtsql.xt_product.Add(ef);   
            xtsql.SaveChanges();//增删改都需要最后加一句SaveChanges()来保存
            return true;
        }

        /// <summary>
        /// 修改(单个)
        /// </summary>
        /// <param name="ef"></param>
        /// <returns></returns>
        public bool update(xt_product ef)
        {
            xt_product Old = xtsql.xt_product.FirstOrDefault(p => p.pid == ef.pid);//找到商品
            Old.code = ef.code;
            Old.title = ef.title;
            xtsql.SaveChanges();
            return true;
        }

        /// <summary>
        /// 删除(单个)
        /// </summary>
        /// <param name="ef"></param>
        /// <returns></returns>
        public bool delete(xt_product ef)
        {
            xt_product Old = xtsql.xt_product.FirstOrDefault(p => p.pid == ef.pid);//找到商品
            xtsql.xt_product.Remove(Old);

            xtsql.SaveChanges();
            return true;
        }
    }
}

 

3.小结:
  • 是不是很简单,3,4句话就把增删改功能写出来了。
  • 基本使用SaveChanges()才会保存操作。
  • 辅助工具观察生成的SQL语句,之前说过,EF是基于ADO.NET对SQL语句操作,所以可以用SQL自带的SQL Server Profiler(在开始 - Microsoft sql server 2005 - 性能工具里),在网上也查到有其他工具可以使用,这个以后在说。
  • 好像EF5.0之前版本的方法有所不同,不知道自己是什么版本的,可以查看项目里的packages.config(生成时会有的)
posted on 2017-01-14 17:33  一个小目标一次坑记录  阅读(285)  评论(0编辑  收藏  举报