这几天我一直在看MVC开发模式。 现在,让我们将使用EF框架添加/删除/更改数据库的操作总结得很小
使用EF处理数据库时,首先添加ADO.NET数据模型。 此时,您可以为我添加数据上下文类。 使用此类中的对象可以对数据库执行任何操作。 因此,在使用EF处理数据库之前,必须创建数据上下文对象。
mydatabaseentitiesmde=newmydatabaseentities (;
1 .使用ef对数据库执行附加操作
1.1创建需要操作数据表的对象(通常表是实体或类),以tblPerson表为例(int id、string name、string sex、null ) 自动增加模具。
tblpersonpersonadd=newtblperson (;
personAdd.name='lss ';
personAdd.sex='男人';
personAdd.age=23; (补充: TBL人员表中规定age不能为空,必须为其赋值。 这将出现在随后的修改和删除操作中)
//在此明确说明,ID是自动增长型的,添加时无需为ID赋值。
1.2向EF上下文传达对数据库执行附加操作
MDE.TBLPerson.add(Personadd;
1.3将实体更改保存到数据库
mde.SaveChanges (
2 .使用ef删除数据库
2.1同样创建TBL人员对象
tblpersonpersondelete=newtblperson (;
//进行删除和修改操作时,必须指定主键ID。 (这里是ID,即表的主键,使用EF操作表时,必须为此表指定主键) ) ) ) ) ) )。
假设使用//ef删除了id为2的记录
personDelete.id=2;
//age不为空,需要给age赋值就可以了
personDelete.age=23;
2.2.1将method 1个人删除对象加载到EF实体容器中
mde.TBL person.attach (tblpersondelete );
2.2.2告诉上下文要进行删除操作
mde.TBL person.remove (tblpersondelete;
2.2.3将执行的删除操作保存到数据库中
mde.SaveChanges (;
//删除操作到此结束。 下面是第二种方法
2.2.1将method2person delete对象加载到EF实体容器中并检索返回的实体对象
dbentityentryentrydelete=mde.entry (tblpersondelete;
2.2.2将容器中实体对象的状态更改为delete
entry delete.state=system.data.entity state.deleted
2.2.3保存删除的实体对象
mde.SaveChanges (;
3 .使用ef更改数据库
3.1创建TBL人员对象
tblpersontblpersonmodify=newtblperson (;
进行//修正操作时,需要指定id以修正假定id为3的数据
tblPersonModify.id=3;
//如果将表示要修正的列的id为3的数据的name变更为yzk
tblPersonModify.name='yzk ';
//这里需要同时给age赋值
tblPersonModify.age=34;
3.2将tblpersonmodify对象加载到EF帧中,并检索返回的主体对象
dnentityentryentrymodify=mde.entry (tblpersonmodify;
3.3将ef框架中tblPersonModify实体对象的保存状态更改为未修改
entry modify.state=system.data.entity state.unchanged;
3.4将tblpersonmodify对象中需要修改的属性从EF中框架的实体状态IsModified更改为true。 这表明需要EF来修改此属性
输入修改. property (d=d.name ).is修改=true;
3.5指示上下文将更改的实体对象保存到数据库中
mde.SaveChanges (;
4 .使用ef查询数据库的操作(SQO和linq ) )。
4.1使用sqo查询数据库
4.1.1这里发生了延迟加载。 数据库中的工具显示,此步骤没有到数据库查询,而只是保存了sql查询语言
dbquerydbquery=mde.TBL person.where (d=d.name like ' % l % ' ) as DbQuery;
4.1.2tolist ) )方法执行查询,但数据库中的数据除外
列表列表=dbquery.to list (;
4.2使用linq语句查询数据库
(fromdinmde.tblpersonwhered.name like ' % l % ' selectd )
上面代码的返回类型是IQueryable通用集合
与上述相同,必须调用ToList ) )方法将他转换为list集合
到此为止,使用EF检查、修改、添加和删除数据库的操作已经写完了。 请多关照。 ~~~~~ ~
译文: http://www.cnblogs.com/坦率的白汤-Liu/p/5039724.html