如何为Linq实体使用不同的提供者?

时间:2010-05-22 12:14:29

标签: linq-to-sql entity-framework data-access-layer dataset

我正在努力让自己熟悉数据库编程,我正在研究为应用程序创建数据访问层的不同方法。我尝试了几种方法,但是有一些不同的数据库技术,我不知道该学什么。例如,我尝试使用带tableadapters的数据集。使用它我可以很容易地切换数据提供程序(通过对IDbConnection等接口进行编程)。这是我想要实现的一件事。但我也知道每个人都在谈论LINQ,而我也想要了解一点。所以我尝试使用Linq到Sql类作为数据访问层,但显然这不是提供者独立的(仅适用于SQL Server)。

然后我读到了实体框架(正如Linq to SQL显然已经获得了它的抨击......)。它应该是供应商独立的每个人都说,但如何?我尝试了一个教程来创建一个实体数据模型,但是唯一可供选择的提供者是SQL Server / Express。仅出于学习目的,我想知道如何将实体框架与MS Access / OleDb一起使用。

另外,对于什么是数据访问的首选数据库技术,我将不胜感激。在所有抨击之后,它仍然是LINQ,还是你应该只使用数据集,因为它们是独立于提供者的?任何学习内容的指针都会很棒,因为如果我最终不打算使用它,那就太多了!...

2 个答案:

答案 0 :(得分:2)

  

唯一可供选择的提供商是SQL Server / Express

.NET Framework仅包含用于SQL Server和SQL Server Compact的EF提供程序。如果需要访问其他DBMS,则需要安装第三方提供程序。例如,有一个免费的provider for SQLite,有设计师的支持。对于各种DBMS,还有一些(商业)providers made by Devart。据我所知,没有针对OleDB或ODBC的EF提供程序......

答案 1 :(得分:1)

我真的很喜欢Scott Hanselman中的隐喻:“我不是水管工,但我确实知道S-Bend是什么。”

就个人而言,我认为您应该掌握各种访问数据的方法。

ADO.Net,EF,Linq2Sql,txt文件,xml等等。

查看Nerd DinnerMusic Store个样本。查看他们访问数据的方式(他们如何进行单元测试,模拟框架,IOC等)

关于数据提供者,我个人会避免使用Access。运行Sql Express或Mysql安装同样容易,并且在简历上看起来更好。

(对于它的价值,这个question讨论了为EF设置mysql。)