To ADO.NET Entity Framework

简介:
ADO.NET Entity Framework的目标是,让程序员尽量少去应用SQL语句与数据层交互,这种思想是很好的。因为程序员们更擅长的是用语言,框架实现业务逻辑,当然,也有很多程序员是通SQL语法的。当然,DBA们也是不擅长去写代码的,特别是业务逻辑的操作。其实不擅长还好说,因为可以学习,可以练习,然后达到擅长。 但更重要的一点,就是延长了开发周期,增加了开发成本,这个是管理者不希望的。
为了解决程序员和DBA的工作,有很多好的想法,架构诞生,三方的很多,看一下微软的解决方案吧。
.NET出现后,就带着ADO.NET,ADO.NET是最原始的数据操作方式,虽然相比以前的数据连接方式来说,微软把数据连接,数据命令,以及数据集合都封装成对象,这在一定程度上已经让程序员操作数据库时得到了简化,但在操作数据库时,还是要写很多的SQL语句的,并且这些语的语法验证,只有在把这个语句送到数据库上去执行时,才执行,这种情况还加大了调试的难度。
在.net的第四个版本,即visual studio 2008中,引进来一种新的操作数据的技术,LINQ to SQL,通过向导,可以把数据的结构引入到程中,并且能完成数据库与对象,表与对象,字段与属性的对应,并且也能很好的解决存储过程,自定义函数与c#中方法的对应关系。虽然LINQ to SQL能帮程序员避免SQL语句,也能提高开发效率,但LINQ to SQL这个从数据库到实体类的映射是很死板的,很直接的,只是简单把表和实体类作了一一对应,没有真正的分析数据表之间的关系,作进一步的处理。另外一点,数据表结构与实体类结构的对应关系是固定的,但数据表数与实体对象就不是一一对应了,其实是一行数据,对应一个实体对象,也就是数据库表实际上是对应实体类的一个集合对象,这点在LINQ to SQL中也是没有很好的处理,因为直接映射,所以表名与实体名相同,所以对程序员来说,这个命名有点奇怪。
ADO.NET Entity Framework(以下简单EF)在visual studio2010中出现了,它很好的解决了LINQ to SQL不能解决的问题,他在从数据库映射实体类时作了分析,比如,如果两张表是多对多的关系,在EF中的视图中,是看不到多对多的这张表的,如下图:
 

(数据库的E-R图)
 

(EF中的实体关系图)
数库与实体间的映身,其实微软是通过一个 XML格式的配置文件存储起来的,格式如下图:
 

SSDL节是存储数据库端信息
CSDL节是存储实体端信息
C-S数据库与实体映射信息
下面的其他节点是关于生成视图后,EF各图布局及呈现。
关于实体的字称与数据表名的对应关于,我们看到,数据库表名是Users,Roles,Permissions,但实体都没有带有s,因为一个实体只表示数据表中的一行记录,这个转换是通过属性来设置的,如下图:
 

实体名称为User,实体的集合名称是Users。
对于数据库的操作,EF实现了基础的操作,但不是所有的DCL和DDL能完成的操作都能完成,比如对直接删除符合条件的数据,如果用EF去解决的话,实体没有提供这个功能,只能自己定存储过程,来完成,当然,对于数据的操作了,为了性能的优化,也最好是通过存储过程和自定义函数来完成操作。
对于其他数据的支持,微软没有提供,仅提供了对SQL Server的框架,当然我们可以建立在其他数据的Provider上去构建自己的EF也是可以的,参照SQL Server的架构来实现,也能达到这个效果。















本文转自桂素伟51CTO博客,原文链接: http://blog.51cto.com/axzxs/447481 ,如需转载请自行联系原作者










相关文章
|
2月前
|
数据库 C# 开发者
WPF开发者必读:揭秘ADO.NET与Entity Framework数据库交互秘籍,轻松实现企业级应用!
【8月更文挑战第31天】在现代软件开发中,WPF 与数据库的交互对于构建企业级应用至关重要。本文介绍了如何利用 ADO.NET 和 Entity Framework 在 WPF 应用中访问和操作数据库。ADO.NET 是 .NET Framework 中用于访问各类数据库(如 SQL Server、MySQL 等)的类库;Entity Framework 则是一种 ORM 框架,支持面向对象的数据操作。文章通过示例展示了如何在 WPF 应用中集成这两种技术,提高开发效率。
44 0
|
2月前
|
缓存 数据库连接 API
Entity Framework Core——.NET 领域的 ORM 利器,深度剖析其最佳实践之路
【8月更文挑战第28天】在软件开发领域,高效的数据访问与管理至关重要。Entity Framework Core(EF Core)作为一款强大的对象关系映射(ORM)工具,在 .NET 开发中扮演着重要角色。本文通过在线书店应用案例,展示了 EF Core 的核心特性和优势。我们定义了 `Book` 实体类及其属性,并通过 `BookStoreContext` 数据库上下文配置了数据库连接。EF Core 提供了简洁的 API,支持数据的查询、插入、更新和删除操作。
87 0
|
5月前
|
SQL 开发框架 .NET
ASP.NET WEB+EntityFramework数据持久化——考核练习库——1、用户管理系统(考点:查询列表、增加、删除)
ASP.NET WEB+EntityFramework数据持久化——考核练习库——1、用户管理系统(考点:查询列表、增加、删除)
113 0
|
开发框架 .NET 数据库
ASP.NET Core Identity自定义数据库结构和完全使用Dapper而非EntityFramework Core
ASP.NET Core Identity自定义数据库结构和完全使用Dapper而非EntityFramework Core前言原本本节内容是不存在的,出于有几个人问到了我:我想使用ASP.NET Core Identity,但是我又不想使用默认生成的数据库表,想自定义一套,我想要使用ASP.NE Core Identity又不想使用EntityFramework Core。
1108 0
|
存储 .NET 关系型数据库
.net core Entity Framework 与 EF Core
重点讲 Entity Framework Core ! (一)Entity Framework            它是适用于.NET 的对象关系映射程序 (ORM),现在的EF6已经是久经沙场,并经历重重磨难,获得一致认可的数据访问技术(原来加 Title 也挺有意思的,哈哈哈)。
1599 0
|
SQL 前端开发 .NET
Asp.net 面向接口可扩展框架之数据处理模块及EntityFramework扩展和Dapper扩展(含干货)
原文:Asp.net 面向接口可扩展框架之数据处理模块及EntityFramework扩展和Dapper扩展(含干货) 接口数据处理模块是什么意思呢?实际上很简单,就是使用面向接口的思想和方式来做数据处理。
1186 0
|
SQL .NET 数据库
ASP.NET Core 配置 Entity Framework Core - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 配置 Entity Framework Core - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 配置 Entity Framework Core 上一章节学习完了视图,其实我们应该立即着手讲解模型的,但 ASP.
1489 0
|
.NET 数据库 开发框架
ASP.NET CORE系列【二】使用Entity Framework Core进行增删改查
原文:ASP.NET CORE系列【二】使用Entity Framework Core进行增删改查 介绍 EntityFrameworkCore EF core 是一个轻量级的,可扩展的EF的跨平台版本。
1659 0
|
.NET 开发框架 中间件
ASP.NET CORE系列【三】使用Entity Framework Core进行增删改查
原文:ASP.NET CORE系列【三】使用Entity Framework Core进行增删改查 身份验证 以前我们熟悉的web.config中配置的form验证,现在没有了。我们来看看在Core里面如何配置; 首先需要NuGet安装一个包:Microsoft.
1781 0
|
SQL .NET 数据库
ASP.NET CORE系列【六】Entity Framework Core 之数据迁移
原文:ASP.NET CORE系列【六】Entity Framework Core 之数据迁移 前言 最近打算用.NET Core写一份简单的后台系统,来练练手 然后又用到了Entity Framework Core  发现园子里有些文章讲得不是那么细节,对于新手小白来说,可能会有点懵。
1599 0