惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
人人都是产品经理
人人都是产品经理
月光博客
月光博客
博客园 - 三生石上(FineUI控件)
GbyAI
GbyAI
博客园 - 司徒正美
美团技术团队
Vercel News
Vercel News
IT之家
IT之家
U
Unit 42
Y
Y Combinator Blog
罗磊的独立博客
Microsoft Security Blog
Microsoft Security Blog
MongoDB | Blog
MongoDB | Blog
Jina AI
Jina AI
V
Visual Studio Blog
B
Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
MyScale Blog
MyScale Blog
博客园 - 叶小钗
A
About on SuperTechFans
WordPress大学
WordPress大学
Hugging Face - Blog
Hugging Face - Blog
B
Blog RSS Feed

博客园 - ccczqh

Entity Framework对NULL值的处理 整理一下Entity Framework的查询 sqlhelper 使用事务实例 SqlHelper 类实现详细信息 SQL Server 2008R2中增加了新的智能 DateTime 数字型 C# tostring()汇总 DataGridView 列宽和行高自动调整的设定 datagridview,第一列前没有灰的一列 DataGridView取消默认选中行 dataGridView空白列,默认选中行的背景色,dataGridView中加入复选框勾选状态的更改 C# winform DataGridView 常见属性 C# dataGridView上下移动选中行 c#加密解密 大数据类型通过存储过程保存数据(clob,blob) WinForm 下实现一个自动关闭的MessageBox C#简单游戏外挂制作(以Warcraft Ⅲ为例) [WebBrowser][Cookie] Document.Cookie 取得的Cookies不完整問題 C# DllImport的用法
转ADO.NET Entity Framework 入门示例向导(附Demo程序下载)
ccczqh · 2013-02-12 · via 博客园 - ccczqh

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

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 程序的运行界面:

下载Demo 示例程序!