今天开始学习EF,从简单的做起,先来做一个最简单的增删改查的操作。
第一步,新建一个项目,这里就不多说了,然后新增一个ADO.NET实体数据模型。连上现在数据库,生成完如下,我这里只有一个表。
只是做练习。如图
生成成功后,它会自动给我们生成一个上下文,这个上下文其实就是相当一个实体类。
然后我们新建一个页面,加4个按钮做增删改查。如下:
head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:Button ID="Button1" runat="server" Text="新增" onclick="Button1_Click" /> <asp:Button ID="Button2" runat="server" Text="修改" onclick="Button2_Click" /> <asp:Button ID="Button3" runat="server" Text="删除" onclick="Button3_Click" /> <asp:Button ID="Button4" runat="server" Text="查询" onclick="Button4_Click" /> </div> </form> </body> </html>
然后在后台写增删改查方法,代码如下:
//EF数据库增加一条数据 protected void Button1_Click(object sender, EventArgs e) { //创建表名 myabc myabc = new myabc(); //增加数据 myabc.name = "xuzhou"; myabc.pwd = "123456"; myabc.getma = 10; //创建上下文对象 mydateEntities mydate = new mydateEntities(); //告诉上下文,我要保存实体 mydate.myabc.AddObject(myabc); //把上下文中的实体保存在数据库中 int d = mydate.SaveChanges(); Response.Write(d); } //EF数据库修改一条数据 protected void Button2_Click(object sender, EventArgs e) { //创建表名 myabc myabc = new myabc(); myabc.name = "xuzhou"; myabc.pwd = "dddd"; myabc.id = 2; //创建上下文对象 mydateEntities mydate = new mydateEntities(); //先将实体附加到实体上下文中 mydate.myabc.Attach(myabc); //手动修改实体的状态 mydate.ObjectStateManager.ChangeObjectState(myabc, EntityState.Modified); //保存回数据库 mydate.SaveChanges(); } //EF数据库删除一条数据 protected void Button3_Click(object sender, EventArgs e) { //创建上下文对象 mydateEntities mydate = new mydateEntities(); //创建表名 myabc myabc = mydate.myabc.First<myabc>(u => u.id ==2); mydate.DeleteObject(myabc); int d = mydate.SaveChanges(); Response.Write(d); } //EF数据库查询一条数据 protected void Button4_Click(object sender, EventArgs e) { //创建上下文对象 mydateEntities mydate = new mydateEntities(); var linq = from user in mydate.myabc where user.pwd =="qq" select user; foreach (var item in linq) { Response.Write(item.pwd + " " + item.name); } var p1 = new { Id = 1, Name = "YJingLee", Age = 22 }; var d = new[] { "ss", "ddd" }; Response.Write(d[1].ToString()); }
这样EF,最基本的增删改查就做完了!