ADO.NET Entity Framework 入门示例向导(附Demo程序下载)

 
 
 
ADO.NET Entity Framework 是.Net Framework 3.5 SP1 引入的实体框架,它使开发人员可以通过对象模型(而不是逻辑/关系数据模型)专注于数据。实体框架Entity Framework使用概念层、映射层和逻辑层将逻辑数据库结构抽象化。本文 http://forum.entlib.com 开源论坛小组提供。
 
实体数据模型( Entity Data Model
实体框架的核心位于其模型中。实体框架支持表示数据库中的关系架构的逻辑存储模型。关系数据库通常存储数据的方式与应用程序使用数据的方式不同。通常,这会迫使开发人员按照数据库包含数据的结构检索数据。因此,开发人员通常将数据加载到更适合处理业务规则的业务实体中。在本示例中,以逻辑模型表示关系数据库的构架,业务实体表示概念模型。实体框架使用映射层在模型之间搭建了桥梁。因此,实体框架的模型中有三个处于活动状态的层:
1.    概念层( Conceptual layer - 表示数据的概念模型,包括实体和相互关系。
2.    逻辑层( Logical layer - 描述数据在数据库的存储模型。
3.    映射层( Mapping layer - 在概念层和逻辑层模型之间建立映射。
 
这三层允许将数据从关系数据库映射到更加面向对象的业务模型。实体框架提供了使用 XML 文件定义这些层的方法。它还基于概念模型的架构生成了一系列类。可以针对这些类进行编程以直接与数据交互。这提供了抽象级别,因此开发人员可以针对概念模型而不是关系模型进行编程。
 
下面演示如何使用Entity Framework 构建示例程序。
首先,使用 Entity Data Model Wizard创建如下NorthwindDB.edml文件。



概念模型和逻辑模型视图:



 
本示例程序采用Northwind 示例数据库,下面开始编写代码对Customers表进行增、删、改、查等等操作。
 
1. 新增Customers 记录
            using (NorthwindEntities myDb = new NorthwindEntities())
            {
                Customers customer = new Customers();
 
                Random rm = new Random();
 
                customer.CustomerID = "A" + rm.Next(9999).ToString();
                customer.CompanyName = "EntLib.com Forum";
                customer.Address = "http://www.EntLib.com";
 
                myDb.AddToCustomers(customer);
 
                int count = myDb.SaveChanges();
 
                txtCustomerID.Text = customer.CustomerID;
            }
 
2. 更新Customers 记录
            using (NorthwindEntities myDb = new NorthwindEntities())
            {
                var query = from customer in myDb.Customers
                            where customer.CustomerID == txtCustomerID.Text.Trim()
                            select customer;
 
                foreach (var row in query)
                {
                    row.CompanyName = "Updated Company Name";
                }
 
                myDb.SaveChanges();
            }
 
3. 删除Customers 记录
            using (NorthwindEntities myDb = new NorthwindEntities())
            {
                var query = from customer in myDb.Customers
                            where customer.CustomerID == txtCustomerID.Text.Trim()
                            select customer;
 
                foreach (var row in query)
                {
                    myDb.DeleteObject(row);
                }
 
                myDb.SaveChanges();
            }
 
4. 查询Customers ,返回所有记录
            using (NorthwindEntities myDb = new NorthwindEntities())
            {
                dataGridView1.DataSource = myDb.Customers;
            }
 
如下的 Entity Framework Demo 程序的运行界面:



 
本示例程序由 http://forum.entlib.com 开源ASP.NET论坛小组提供,如有问题或疑问,欢迎访问 http://forum.entlib.com 论坛。
 
 


附件:
EntityFrameworkDemo.rar 78 KB, 下载 765 次.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值