entity framework 新增 修改 删除 查询

安装配置: vs2008+sp1

      SQL server 2005/2008

操作:

新建

。。。。。。。。中间的就不讲了。

1.新增

//EFDBEntities这个是新建时,系统会取这个名字为类名,你也可以更改他。

   EFDBEntities ef = new EFDBEntities();

方法1:

  ef.AddToT_EFNULL(new T_EFNULL
      {
                fbit=true,
                fdatetime=DateTime.Now,
                ffloat=0,
                fdecimal=0,
                fntext="",
                fnvarchar="",                
      });
  ef.SaveChanges();

AddToT_EFNULL为这方法是自动生成的,格式:ADD+数据库表名

SaveChanges(),更新数据库。

注:数据库的字段不能为空时有些类型是必填的。

  bit,float,decimal,int 字段不赋值不会出错(bit默认为false,数值类型为0),nvarchar,ntext,datetime会出错

 方法2:

   ef.AddObject("T_EFNULL",new T_EFNULL
      {
        fdatetime = DateTime.Now,
            ffloat = 0,
            fdecimal = 0,
            fntext = "",
            fnvarchar = "",
            fint = 0
  });           

删除:

    T_EFNULL model=ef.T_EFNULL.First();
           ef.DeleteObject(model);

            ef.SaveChanges();

注:model必须是ef里的对象,不能自己New一个对象(T_EFNULL model = new T_EFNULL { ID = 48 };),会报错。无法删除此对象,因为未在 ObjectStateManager 中找到它。

Detach 分离实体:

从集合中删除实体,不会删除数据库记录,delete当saveChanges()时会删除数据库的数据

     T_EF model = T_EF.CreateT_EF(500);
            MessageBox.Show("初始化,当前对象状态:"+model.EntityState.ToString());  //detach
            ef.AddToT_EF(model);
            MessageBox.Show("添加后,当前对象状态:" + model.EntityState.ToString());  //added
            ef.Detach(model);
            MessageBox.Show("移除后,当前对象状态:" + model.EntityState.ToString());  //detach

修改:

   T_EF model =ef.T_EF.First();
            MessageBox.Show("取得对象,当前对象状态:" + model.EntityState.ToString());     //unchanged
            model.fnvarchar = "中华人民共和国";
            MessageBox.Show("修改后,当前对象状态:" + model.EntityState.ToString());       //modifyed
            ef.SaveChanges(); 

ApplyPropertyChanges 修改实体

      //用新对象更新数据库中主键对应的对象           

            T_EF model = ef.T_EF.First();

            //建一个新对象
            T_EF model2 = T_EF.CreateT_EF(2);
            model2.fnvarchar = "我是新对象";

    //用新对象覆盖旧对象

    ef.ApplyPropertyChanges("T_EF", model2);

     ef.SaveChanges();

原文地址:https://www.cnblogs.com/chencidi/p/1888866.html