[EF]使用EF简单增删改查

简介:

目录

认识EF

添加数据

删除数据

修改数据

查询数据

总结

认识EF

ADO.NET Entity Framework 是微软以ADO.NET为基础所发展出来的对象关系对伊(O/R Mapping)解决方案,早起被称为ObjectSpage,最新版本EF6。

实体框架Entity Framework是ADO.NET中的一组支持面向数据的软件应用程序的技术。是微软的一个ORM框架。

什么是O/R Mapping

广义上,ORM指的是面向对象模型和关系数据库的数据结构之间的相互转换。

狭义上,ORM可以被认为是,基于关系数据库的数据存储,实现一个虚拟的面向对象的数据访问接口。理想情况下,基于这样一个面向对象的接口,持久化一个OO对象应该不需要了解任何关系型数据存储数据的实现细节。

添加数据

测试用数据库

复制代码
 1 USE [Wolfy.Shop]
 2 GO
 3 
 4 /****** Object:  Table [dbo].[TB_Customer]    Script Date: 2014/7/29 20:01:56 ******/
 5 SET ANSI_NULLS ON
 6 GO
 7 
 8 SET QUOTED_IDENTIFIER ON
 9 GO
10 
11 CREATE TABLE [dbo].[TB_Customer](
12     [ID] [uniqueidentifier] NOT NULL,
13     [Name] [nvarchar](32) NULL,
14     [Address] [nvarchar](100) NULL,
15     [Gender] [bit] NULL,
16  CONSTRAINT [PK_CustomerID] PRIMARY KEY CLUSTERED 
17 (
18     [ID] ASC
19 )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
20 ) ON [PRIMARY]
21 
22 GO
复制代码
复制代码
 1 USE [Wolfy.Shop]
 2 GO
 3 
 4 /****** Object:  Table [dbo].[TB_Order]    Script Date: 2014/7/29 20:02:47 ******/
 5 SET ANSI_NULLS ON
 6 GO
 7 
 8 SET QUOTED_IDENTIFIER ON
 9 GO
10 
11 CREATE TABLE [dbo].[TB_Order](
12     [ID] [int] NOT NULL,
13     [OrderName] [nvarchar](1000) NULL,
14     [CreateDate] [datetime] NULL,
15     [customerId] [uniqueidentifier] NULL,
16  CONSTRAINT [PK_TB_Order] PRIMARY KEY CLUSTERED 
17 (
18     [ID] ASC
19 )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
20 ) ON [PRIMARY]
21 
22 GO
23 
24 ALTER TABLE [dbo].[TB_Order]  WITH CHECK ADD  CONSTRAINT [FK_Customer_Order] FOREIGN KEY([customerId])
25 REFERENCES [dbo].[TB_Customer] ([ID])
26 GO
27 
28 ALTER TABLE [dbo].[TB_Order] CHECK CONSTRAINT [FK_Customer_Order]
29 GO
复制代码

工具VS2013,SQL SERVER2012
在使用EF的时候发现,跟之前的版本差别还是挺大的,有些方法的名字都改了。这里记录一下,使用的时候方便查找吧。

测试页面

复制代码
 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AddCustomer.aspx.cs" Inherits="Wofly.EFDemo.AddCustomer" %>
 2 
 3 <!DOCTYPE html>
 4 
 5 <html xmlns="http://www.w3.org/1999/xhtml">
 6 <head runat="server">
 7     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 8     <title></title>
 9 </head>
10 <body>
11     <form id="form1" runat="server">
12         <div>
13             <asp:Button Text="添加" CommandArgument="add" runat="server" ID="btnAdd" OnClick="btnAdd_Click" />
14             <table>
15                 <tr>
16                     <td>用户名:</td>
17                     <td>
18                         <asp:TextBox runat="server" ID="txtUserName" ClientIDMode="Static" /></td>
19                 </tr>
20                 <tr>
21                     <td>用户地址:</td>
22                     <td>
23                         <asp:TextBox runat="server" ID="txtAddress" ClientIDMode="Static" /></td>
24                 </tr>
25                 <tr>
26                     <td>性别:</td>
27                     <td>
28                         <asp:RadioButton runat="server" Checked="true" ID="rdbMan" Text="男" GroupName="gender" />
29                         <asp:RadioButton GroupName="gender" runat="server" ID="rdbFemale" Text="女" />
30                     </td>
31                 </tr>
32             </table>
33             <asp:Repeater runat="server" ID="rptCustomerList">
34                 <HeaderTemplate>
35                     <table>
36                         <tr>
37                             <th>序号</th>
38                             <th>用户名</th>
39                             <th>地址</th>
40                             <th>性别</th>
41                             <th>操作</th>
42                         </tr>
43                 </HeaderTemplate>
44                 <ItemTemplate>
45                     <tr>
46                         <td><%#Container.ItemIndex+1 %></td>
47                         <td><%#Eval("Name") %></td>
48                         <td><%#Eval("Address") %></td>
49                         <td><%#Convert.ToBoolean(Eval("Gender"))==true?"男":"女" %></td>
50                         <td>
51                             <asp:LinkButton Text="编辑" runat="server" OnClick="lnkEdit_Click" CommandName="Edit" CommandArgument='<%#Eval("ID") %>' ID="lnkEdit" /><asp:LinkButton Text="删除" runat="server" OnClick="lnkEdit_Click" ID="lnkDelete" CommandName="Delete" CommandArgument='<%#Eval("ID") %>' /></td>
52                     </tr>
53                 </ItemTemplate>
54                 <FooterTemplate>
55                     </table>
56                 </FooterTemplate>
57             </asp:Repeater>
58         </div>
59     </form>
60 </body>
61 </html>
复制代码

增加用户

复制代码
1                ShopEntities shopEntities = new ShopEntities();
2                 TB_Customer tb_CustomerAdd = new TB_Customer() { ID = Guid.NewGuid(), Name = txtUserName.Text, Address = txtAddress.Text, Gender = rdbMan.Checked ? true : false };
3                 shopEntities.TB_Customer.Add(tb_CustomerAdd);
4                 int intResult = shopEntities.SaveChanges();
5                 if (intResult > 0)
6                 {
7                     DataInit();
8                 }
复制代码

 

删除数据

1                    shopEntities.TB_Customer.Remove(tb_Customer);
2                     if (shopEntities.SaveChanges() > 0)
3                     {
4                         this.DataInit();
5                     }

 

修改数据

复制代码
 1                 ShopEntities shopEntities = new ShopEntities();
 2                 var customer = from c in shopEntities.TB_Customer
 3                                where c.ID == new Guid(btn.CommandArgument)
 4                                select c;
 5                 TB_Customer tb_CustomerUpdate = customer.FirstOrDefault<TB_Customer>();
 6                 //将 对象 添加到 EF中   
 7                 tb_CustomerUpdate.Name = txtUserName.Text;
 8                 tb_CustomerUpdate.Address = txtAddress.Text;
 9                 tb_CustomerUpdate.Gender = rdbMan.Checked ? true : false;
10                 //是否修改
11                 shopEntities.Entry<TB_Customer>(tb_CustomerUpdate).State = System.Data.EntityState.Modified;
12                 //一次性 生成sql语句到数据库执行            
13                 shopEntities.SaveChanges();
复制代码

 

查询数据

复制代码
1         private void DataInit()
2         {
3             ShopEntities shopEntities = new ShopEntities();
4             var customers = from c in shopEntities.TB_Customer
5                             select c;
6             this.rptCustomerList.DataSource = customers.ToList();
7             this.rptCustomerList.DataBind();
8         }
复制代码

 

总结

新技术更新可真快,这里只是记录增删改查的方法,也没具体描述,只是影响中感觉跟ef4差别很大。这里记录一下,使用起来的时候,希望能快速上手。

博客地址: http://www.cnblogs.com/wolf-sun/
博客版权: 本文以学习、研究和分享为主,欢迎转载,但必须在文章页面明显位置给出原文连接。
如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步!
再次感谢您耐心的读完本篇文章。

转载:http://www.cnblogs.com/wolf-sun/p/3873859.html
目录
相关文章
|
SQL 数据库 开发者
Python中使用Flask-SQLAlchemy对数据库的增删改查简明示例
这样我们就对Flask-SQLAlchemy进行了一次简明扼要的旅程,阐述了如何定义模型,如何创建表,以及如何进行基本的数据库操作。希望你在阅读后能对Flask-SQLAlchemy有更深入的理解,这将为你在Python世界中从事数据库相关工作提供极大的便利。
1160 77
|
XML 数据库 Android开发
Android数据库的使用(增删改查)
本文介绍了一个简单的数据库操作Demo,包含创建数据库、增删改查功能。通过5个按钮分别实现创建数据库、插入数据、删除数据、更新数据和查询数据的操作。代码结构清晰,适合初学者学习Android SQLite数据库基础操作。
473 5
|
数据库 Android开发 开发者
Android常用的room增删改查语句(外部数据库)
本文分享了将一个原生数据库驱动的单词APP重构为使用Room库的过程及遇到的问题,重点解决了Room中增删改查的常用语句实现。文章通过具体示例(以“forget”表为例),详细展示了如何定义实体类、Dao接口、Database类以及Repository和ViewModel的设计与实现。同时,提供了插入、删除、更新和查询数据的代码示例,包括模糊查询、分页加载等功能。此外,针对外部数据库导入问题,作者建议可通过公众号“计蒙不吃鱼”获取更多支持。此内容适合有一定Room基础的开发者深入学习。
446 0
Android常用的room增删改查语句(外部数据库)
|
关系型数据库 MySQL 数据库连接
Unity连接Mysql数据库 增 删 改 查
在 Unity 中连接 MySQL 数据库,需使用 MySQL Connector/NET 作为数据库连接驱动,通过提供服务器地址、端口、用户名和密码等信息建立 TCP/IP 连接。代码示例展示了如何创建连接对象并执行增删改查操作,确保数据交互的实现。测试代码中,通过 `MySqlConnection` 类连接数据库,并使用 `MySqlCommand` 执行 SQL 语句,实现数据的查询、插入、删除和更新功能。
|
SQL 关系型数据库 API
HarmonyOs开发:关系型数据库封装之增删改查
每个方法都预留了多种调用方式,比如使用callback异步回调或者使用Promise异步回调,亦或者同步执行,大家在使用的过程中,可以根据自身业务需要进行选择性调用,也分别暴露了成功和失败的方法,可以针对性的判断在执行的过程中是否执行成功。
721 13
|
SQL 关系型数据库 MySQL
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
本文介绍了在ThinkPHP6框架中如何连接和使用数据库进行增删改查操作。内容包括配置数据库连接信息、使用Db类进行原生MySQL查询、find方法查询单个数据、select方法查询数据集、save方法添加数据、insertAll方法批量添加数据、insertGetId方法添加数据并返回自增主键、delete方法删除数据和update方法更新数据。此外,还说明了如何通过数据库配置文件进行数据库连接信息的配置,并强调了在使用Db类时需要先将其引入。
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
|
SQL 关系型数据库 MySQL
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
课程分类查询、课程新增、统一异常处理、统一封装结果类、JSR303校验、修改课程、查询课程计划、新增/修改课程计划
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
|
存储 NoSQL API
使用Py2neo进行Neo4j图数据库的增删改查操作
使用Py2neo进行Neo4j图数据库的增删改查操作
1008 5
|
数据可视化 API PHP
低代码开发工具-学生管理系统-老师管理增删改查实现
低代码开发工具-学生管理系统-老师管理增删改查实现
398 5
|
前端开发 Java 数据库连接
javamvc配置,增删改查,文件上传下载。
【10月更文挑战第4天】javamvc配置,增删改查,文件上传下载。
247 1

热门文章

最新文章