[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

TB_Customer

 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

TB_Order

工具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>

AddCustomer.aspx

增加用户

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差别很大。这里记录一下,使用起来的时候,希望能快速上手。

[EF]使用EF简单增删改查,布布扣,bubuko.com

时间: 2024-08-06 11:51:26

[EF]使用EF简单增删改查的相关文章

Asp.net Core 2.1使用 EF Core 简单增删改查操作数据库

Asp.net Core 2.1使用 EF Core 简单增删改查操作数据库 大概步骤如下5步: 1.创建项目(Asp.net Core 2.1项目) 2.项目使用EF Core 3.建立实体 4.生成迁移文件(生成数据库) 5.使用VS工具生成视图.控制器代码 示例代码下载  https://github.com/ZhMartincheng/NetCoreDemo.git 1.创建项目(Asp.net Core 2.1项目) 选择.net core 版本2.1 基础项目创建成功 2.项目使用E

kendoUI 简单增删改查

1  目前学习主要基于kendoUI英文API文档(http://docs.telerik.com/kendo-ui/introduction) 2  在已经搭建的MVC+EF+kendo UI的基础上实现Kendo UI增删改查功能 3 增删改查代码示例: 3-1:主要展示前台实现代码,因为后台代码不是唯一,可自行配置,返回JSON数据 3-1:html代码如下 3-1-1:查询和列表展示 HTML代码,列表展示只需要一个div标签 ,如下(div id="grid"><

Linq to SQL 简单增删改查

Linq to SQL 简单增删改查 用Linq大大减少了对数据库的一般操作所需的编码量. 运行下面事例之前,首先建一个叫做Alien的数据库表. CREATE TABLE [dbo].[Aliens](    [Id] [int] IDENTITY(1,1) NOT NULL primary key,    [Name] [nchar](10) NULL,) 建一个console项目,在项目里添加一个Linq To Sql类文件(.dbml以及两个附属文件),把Alien表从服务器资源管理器拖

Redis之五种数据类型的简单增删改查

开心一笑 乌龟受伤.让蜗牛去买药.过了2个小时.蜗牛还没回来.乌龟急了骂道:他妈的再不回来老子就死了!这时门外传来了蜗牛的声音:你他妈再说老子不去了! 提出问题 Redis五种数据类型的简单增删改查命令??? 解决问题 假设你已经安装Redis服务器: 假设你已经打开Redis cli命令行工具: 假设你对Redis有所了解: Redis简单增删改查例子 例一:字符串的增删改查 #增加一个key为ay_key的值 127.0.0.1:6379> set ay_key "ay" O

EF简单增删改查

一. 主要内容 1. 数据持久层框架:EF,NHibernate,ibaties(半开放的). 2. 对象关系映射. 3. 生成外键对象. 4. T4模板.(VS里面需要装T4 Editor插件.) 5. EF上下文(EF容器)->.Context.cs. 6. EF简单的增删改查. 查询:利用部分类的特性重写方法来进行方法的扩展. 修改(SQL Serrver Profiler跟踪): 先查询,再修改,再保存更改. 7. 延迟加载(延时查询.按需加载)和即时查询. 延迟加载的用途一: SQL语

EF学习笔记——通用增删改查方案

http://blog.csdn.net/leftfist/article/details/25005307 我刚接触EF未久,还不知道它有什么强大之处,但看上去,EF提供了一般的增删改查功能.以往用过一些ORM方法,尽管有代码生成器,但代码量总的 来说比较多.这次采用EF,我就想,能不能尽量写出一些通用的方法,以后添加表.实体类,只需做很少的改动,就能拥有基本的增删改查功能呢? 方案如下: 1. 分为几个部分:BLL.DAL.Model.Interface.其中,EF生成的代码放在Model.

Asp.net MVC4 使用EF实现数据库的增删改查

EF的使用 步骤: (1)将EF添加到项目:在Model右击添加新建项 找到ADO.NET实体数据模型,接着... (2)实现数据库的增删改查 查询 (因为在Model中已经添加EF实体了,所以就可以在Controller中进行有关的数据库操作) <<controller>> //数据上下文对象 OrderDBEntities db = new OrderDBEntities(); public ActionResult Index() { //使用SQO(标准查询运算符),查询

BootStrap DataTables Spring MVC简单增删改查实例

1 <!DOCTYPE html> 2 <%@ page contentType="text/html;charset=gbk" language="java" %> 3 <%@page isELIgnored="false" %> 4 <meta name="viewport" content="width=device-width, initial-scale=1&quo

hibernate基本配置与简单增删改查

ORM(Object Relation Mapping)是对象关系映射,是一个思想,它的作用是在关系数据库与对象之间做一个自动映射,将数据库中的表格映射到一个类,也就是持久化类,数据表中每行映射为对象,行中的各个字段映射为对象的属性,这样可以在开发中使用面向对象的思想来操作数据库. 其中hibernate是ORM思想实现的一个持久层框架. 其中有三个主要的内容:1.持久化类(*.java) 2.映射文件(*.hbm.xml) 3.配置文件(*.cfg.xml) 使用Hibernate框架搭建一个