安装配置: 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();