EF Provider for Access/ODBC 以及ADO.Net Entity Framework 与Linq to SQL的比较和适用场景

标签: linq sql 数据库 sql server orm 领域模型
3040人阅读 评论(0) 收藏 举报
1.我的环境VS2008 SP1.Entity Data Model  Wizard里选DataSource时不能选择Acess的数据库.是否目前不能建Acess的Entity Data Model.
相反Linq to Sql可以.

2.ADO.NET Entity与Linq to Sql 相比,有啥些优点.对于中小型项目,以及它们的适应情况

答:

1. 至今为止,微软官方尚未发布EF Provider for Access/ODBC。
ADO.Net Entity Framework 的 Data Provider 可以根据不同目标数据库来进行自定义开发。Provider开发的关键在于适合于各个目标数据库的SQL语句的翻译。在MSDN Code Gallery上有Entity Framework Sample Provider开发的实例程序,以下链接可供参考。
a. http://code.msdn.microsoft.com/EFSampleProvider ; Entity Framework Sample Provider
b. http://code.msdn.microsoft.com/EFOracleProvider Sample Entity Framework Provider for Oracle – Home
c. http://blogs.msdn.com/adonet/ ; ADO.Net的Team Blog,有大量关于EF或者Provider发布的信息。

2. ADO.Net Entity Framework 与Linq to SQL的比较和适用场景:
MSDN上最近发表了一篇Elisa Flasko著的文章,比较了LINQ to SQL与LINQ to Entities适用的场景:
Introducing LINQ to Relational Data
http://msdn2.microsoft.com/en-us/library/cc161164.aspx 
作者指出,LINQ to SQL主要的应用场景是针对微软SQL Server数据库的快速开发,这些应用的对象模型与数据库中数据定义的结构间非常类似,几乎有一一对应的映射关系,这样你可以使用LINQ to SQL把一些数据表直接映射到.NET类,数据字段映射到的相应的.NET类的属性上。作者总结如下: 
LINQ to SQL适用之场景
.想使用ORM方案,而且数据库数据定义与对象模型是1:1对应关系 
. 想使用ORM方案,而且对象继承结构储存在单一数据表中(单表继承) 
. 想使用原始CLR类,而不是使用生成的类或需要从某个基类继承而来,或者需要实现某个接口 
. 想使用LINQ来编写查询 
. 想使用ORM,但需要性能非常好,可以通过存储过程和编译的查询来优化性能
LINQ to Entities主要的应用场景针对的是需要非常灵活和更复杂的映射的场景,特别是在企业应用方面,而且需要访问其他的数据库系统。在这些场景中,数据表的结构与对象模型也许差别很大,而且应用开发人员往往并不拥有生成或修改数据库数据定义的权利。 
LINQ to Entities适用之场景 :

.想要开发针对微软SQL Server或其他数据库系统的应用 
. 想要定义领域模型,并以之为持久层的基础 
. 想要使用ORM方案,对象也许与数据库数据定义有1:1对应关系,也许结构迥异 
. 想要使用支持单表继承和其他储存方案(每类一表,每具体类一表)的ORM方案 
. 想使用LINQ来编写查询,并且查询可以在不同数据库系统下工作 
. 想使用ORM,但需要性能非常好,可以通过存储过程和编译的查询来优化性能

刘江涛[MSFT]
在线开发支持工程师
合作伙伴支持部
微软全球技术支持中心
查看评论

c# 使用Entity Framework操作Access数据库

原文地址:http://www.tuicool.com/articles/IBvya2 Entity Framework是C#开发中最常见的ORM工具。默认Entity Framew...
  • Metal1
  • Metal1
  • 2017-05-31 14:50:21
  • 2611

Oracle.ManagedDataAccess + EF的使用

1.http://www.oracle.com/technetwork/database/windows/downloads/odpmbeta-1696432.html 下载ORACLE的驱动,这个是...
  • greystar
  • greystar
  • 2013-06-08 16:24:32
  • 21564

vs2012 MFC连接及操作access(2007)数据库(ADO)

最近想写个图书管理软件,用到了数据库,但是由于是小白,弄了好半天才把数据库搞明白。虽然网上有一些教程,但大多都是长长的文字叙述,所以想写一个图文版的连接教程并把这两天的经验记录下来。 1、首先打开ac...
  • u012784288
  • u012784288
  • 2016-07-06 12:16:22
  • 4804

EF第一次加载较慢的原因以及解决方法(汇)

前言:     这个问题没有遇到过,但是面试当中很可能会被问到,当然也不主要是为了应对面试,学到知识才是王道为什么会慢:    在应用程序中定义的每个上下文,其首次使用时,JUST-INTIME编译...
  • ma15732625261
  • ma15732625261
  • 2017-05-19 16:40:17
  • 2191

17.C#:Entity Framework快速入门--实例篇

之前的那篇MSDN上翻译过来的EF写得并不好,没有操作性,这里结合网上一片有实例的博客,结合自己的操作过程,作以下说明: 1.使用VS2010和C#语言,所以要有Oracle数据库服务器,并且要安装...
  • xushaozhang
  • xushaozhang
  • 2017-01-18 21:24:24
  • 4134

EF的使用建议

EF有3种设计模式: Database-First Model-First Code-First 如果不用对数据库的设计进行严格控制的话,对于需要根据需求业务变动进行快速开发的项目来说,Cod...
  • dongliang_shali
  • dongliang_shali
  • 2016-02-19 14:05:30
  • 2986

c#连接access 2007连接字符串

c#连接access 2007连接字符串 以前写网页都是用的ACCESS2003数据库,连接字符串也通常是以下两种: 一:connstr="DBQ="+server.mappath("数据...
  • tommycsdn
  • tommycsdn
  • 2016-02-14 14:28:56
  • 3225

EntityFramework在不同数据库下的配置

EntityFramework默认只支持SQLServer数据库,如果想要支持其他数据库,要安装相应的插件。如支持Oracle,要安装Oracle Data Access Components (OD...
  • weiky626
  • weiky626
  • 2013-12-02 10:54:32
  • 7558

使用Entity Framework访问MySQL数据库

简介 Entity Framework (EF,ADO.NET Entity Framework)是微软官方提供的.NET平台的ORM框架。相比于LINQ TO SQL,EF框架具有很明显的优势: ...
  • qq798833488
  • qq798833488
  • 2016-05-03 10:52:21
  • 2282

ASP.NET使用Linq to SQL实现基本的增、删、改、查及绑定控件

     刚刚接触了一点点的Linq就一下子被它吸引住了,让我一下子就产生了想一口气学好使用的念头。于是就在ASP.NET官网搞了个视频看了下,我英语不是很好,不过大至听懂了是怎么用的。下面把我学到的...
  • aspnet2002web
  • aspnet2002web
  • 2009-09-02 19:55:00
  • 1343
    个人资料
    等级:
    访问量: 1222万+
    积分: 6万+
    排名: 38
    文章分类
    文章存档
    最新评论
    计算流量