关闭

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

标签: linqsql数据库sql serverorm领域模型
2845人阅读 评论(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]
在线开发支持工程师
合作伙伴支持部
微软全球技术支持中心
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

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

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

EntityFramework在不同数据库下的配置

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

entity framework(EF) 直接执行数据库命令并返回DataTable 参数化sql语句

entity framework(EF) 直接执行数据库命令 //调用方法 private void button1_Click(object sender, EventArgs ...
  • idays021
  • idays021
  • 2016-05-19 19:04
  • 7543

MFC上基于Access数据库连接实例(ODBC模式)

介绍了在MFC中使用ODBC方式使程序能够动态的连接一个在电脑上建好的Access数据表,并能够实现插入、删除、替换更新数据的功能!
  • dby3579
  • dby3579
  • 2015-03-09 22:12
  • 1757

EntityFramework中常用的数据删除方式

最近在学EF,目前了解到删除操作有三种方式, 第一,官方推荐的先查询数据,再根据查询的对象,删除对象。 这是第一种,官方推荐 第二,自己创建一个对象,然后附加,然后删除。 ...
  • itmaxin
  • itmaxin
  • 2015-08-14 12:14
  • 14494

创建Access数据的ODBC数据源时没有Access数据源驱动器

在作数据库实例的时候,实例2需要创建Access数据库的ODBC数据源,我的管理工具 ODBC数据源管理器里面只有SQL Server ,没有Access等其他,当时我以为是装的时候少装了什么,于是就...
  • chinajobs
  • chinajobs
  • 2015-05-14 17:44
  • 8781

ado.net EF与ado.net区别比较、在EF中使用执行sql语句

EF作为微软的一个ORM框架,通过实体、关系型数据库表之间的映射,使开发人员可以通过操作表实体而间接的操作数据库,大大的提高了开发效率。 这样一来,.net平台下,我们与底层数据库的交互就有两种选择了...
  • ydm19891101
  • ydm19891101
  • 2016-03-30 12:59
  • 7696

详细介绍—获取ACCESS数据库中所有的表名(ODBC + MFC实现)解决方法

网上关于获取ACCESS数据库中所有的表名的文章挺多的,但是说的不是很详细,对于初学者来说很难看懂(我也是初学者呵呵),研究了很久,自己弄懂后,觉得很有必要做个详细的介绍,以免其他初学者向我一样,因为...
  • auragreen
  • auragreen
  • 2013-10-10 11:58
  • 4258

EntityFramework中常用的数据修改方式

上一篇文章里提到了  EntityFramework中常用的数据删除方式,那么修改对象值也有多种方式 第一种 同样是官方推荐的方式,先查询出来,再对要修改的字段赋值,这也...
  • itmaxin
  • itmaxin
  • 2015-08-14 15:25
  • 7343

Entity Framework(EF) 直接执行数据库命令并返回 DataTable 数据参数化 SQL 语句

//调用方法         private void button1_Click(object sender, EventArgs e)         {         &#...
  • Denghejing
  • Denghejing
  • 2017-04-19 23:42
  • 1924
    个人资料
    • 访问:11845506次
    • 积分:65357
    • 等级:
    • 排名:第40名
    • 原创:675篇
    • 转载:2277篇
    • 译文:0篇
    • 评论:554条
    文章分类
    文章存档
    最新评论
    计算流量