ef框架支持哪些数据库,entity framework 支持哪些数据库
来源:整理 编辑:黑码技术 2024-11-29 06:25:05
本文目录一览
1,entity framework 支持哪些数据库
你好:
EF可以支持多数据库的,比如sql server, mysql , oracle,它可以做到迁移数据库,可以几乎不改代码,但是,edmx其实是一个配置文件,也包含了目标数据库的信息。
如果要做到更改配置就可以切换数据库,那么,有以下几点:
1:3种数据库的provider的文档要仔细看,确认哪些功能是不被支持的,取支持功能的最小集,写进开发规范,规定哪些linq语句不允许写。
2:为3种数据库准备3套edmx,这样比较简单,也可以把ssld之类生成在dll之外,然后动态修改,但容易出错且麻烦。不论是dbfirset还是codefirst,根据目标数据库类型重新生成edmx都比较简单。
3:更改连接串,EF的连接串中,需要指定传统连接串/EF的provider/相应的edmx配置(ssld,csdl,msl),把这3个要素都根据1,2配置为你的目标数据库对应的配置之后,理论上,你的代码就可以直接运行。
2,entity framework 哪些操作 查询数据库
通过datacontext直接.一下获得所有数据:using (var db = new DBContext()) var employees = db.Employees.ToList(); ......}ef可以支持多数据库的,比如sql server, mysql , oracle,它可以做到迁移数据库,可以几乎不改代码,但是,edmx其实是一个配置文件,也包含了目标数据库的信息。如果要做到更改配置就可以切换数据库,那么,有以下几点:1:3种数据库的provider的文档要仔细看,确认哪些功能是不被支持的,取支持功能的最小集,写进开发规范,规定哪些linq语句不允许写。2:为3种数据库准备3套edmx,这样比较简单,也可以把ssld之类生成在dll之外,然后动态修改,但容易出错且麻烦。不论是dbfirset还是codefirst,根据目标数据库类型重新生成edmx都比较简单。3:更改连接串,ef的连接串中,需要指定传统连接串/ef的provider/相应的edmx配置(ssld,csdl,msl),把这3个要素都根据1,2配置为你的目标数据库对应的配置之后,理论上,你的代码就可以直接运行。
3,Entity Framework如何才能支持多数据库
EF对Sql Server的支持非常好,无论是Code First,还是 Model First 还是 Database First 都支持的很好,但是对非微软系数据库的支持就不那么友好了,现在唯一能保证的是对大部分数据库的 Database First 支持的很好。所以在这里,我们让 Entity framework 支持多数据库实现的思路就是基于 Database First 的。首先在各数据库中创建好数据库表(这里有很多讲究的地府,字段类型必须一致,可以使用Power Designer工具来简化手工劳动),再基于某一数据库生成概念模型,存储模型以及映射关系,然后拷贝生成的存储模型文件并修改,使之能与其他数据库匹配起来,从而获得对多数据库的支持。本示例演示了对Sql Server 2008和MySQL 5.5两种书库的支持,使用的 MySQL Connector Net 6.3.5。请参考前文安装相关的软件。下面讲述具体步骤:1,分别在 Sql Server 2008 和 MySQL 5.5 建立数据库 school及表 student(推荐使用小写,MySQL默认使用小写),student表只包含三个字段:Id(主键),Name 和 Age。请注意两个表的数据类型必须完全一致!
4,entity frameworkcore 支持mysql吗
支持的EntityFramework Extended 是EF的扩展,可以批量删除或更新数据表 ,非常方便1. 表名的数据库架构前缀默认为 dbo, 需在DbContext类中将默认的数据库架构改为空public class myContent : DbContext protected override void OnModelCreating(DbModelBuilder modelBuilder) modelBuilder.HasDefaultSchema(""); base.OnModelCreating(modelBuilder); }// ......}2. 列名,表名均用 [ ] 括起来, 在program.cs 最前端插入以下代码[STAThread] static void Main() EntityFramework.Container container = new EntityFramework.Container(); EntityFramework.Locator.RegisterDefaults(container); container.Register<EntityFramework.Batch.IBatchRunner>(() => new EntityFramework.Batch.MySqlBatchRunner()); EntityFramework.Locator.SetContainer(container); ...... }
5,EF和Linq to Sql的区别
实 体框架 是 ADO.NET 中的一组支持开发面向数据的软件应用程序的技术。面向数据的应用程序的架构师和开发人员曾为实现两个迥然不同的目标费尽心机:他们必须为要解决的业务问题 的实体、关系和逻辑构建模型,还必须处理用于存储和检索数据的数据引擎。数据可能跨多个各有不同协议的存储系统;甚至使用单个存储系统的应用程序也必须在 存储系统的要求与编写高效且容易维护的应用程序代码之间取得平衡。实体框架 使开发人员可以采用特定于域的对象和属性(如客户和客户地址)的形式使用数据,而不必自己考虑存储这些数据的基础数据库表和列。通过提升开发人员在处理数 据时可以使用的抽象级别并减少创建和维护面向数据的应用程序所需的代码,可以实现这一目的。因为 实体框架 是 .NET Framework 的一个组件,所以 实体框架 应用程序可以在安装了 .NET Framework 3.5 Service Pack 1 (SP1) 的任何计算机上运行linq是面向对象的sql。也就是说,sql是向关系型数据库的查询,而linq实际上是对内存里的数据的查询。虽然linq原来是对象查询,但经过ms的努力,可以通过表达式分析与实体到关系的映射(linq to sql),把linq转换为sql语句或是对xml的查询(linq to xml)。因此,这种技术就成了对象到数据库记录的一个方便的映射、转化与操作的工具,你再也不必去去根据不同的情况用字符串拼接的办法生成sql,而是专心于对象模型的处理即可,你对于对象的修改最终都会被转换为对应的update, insert, delete等sql语句,在你submit时全部提交到数据库中。综尔言之,linq to sql是一个数据库到对象结构的一个中间层, 他把对关系数据的管理转变为对象的操作,屏蔽了麻烦的sql,而且,还可以得到vs强大的智能感知功能的帮助。
文章TAG:
框架 支持 哪些 数据 ef框架支持哪些数据库 framework 支持哪些数据库