如何使用Entity Framework来操作MS Access数据库

29

我需要在C#.Net 4.0中开发一个桌面Windows应用程序,它将在三个不同的数据库中运行,即MS Access 2007及以上版本、Oracle 11G和SQL Server 2008。现在我想在我的应用程序中使用Entity Framework。这是使用EF作为我的应用程序的最佳选择吗?如果是,那么我该如何在Access数据库中使用实体框架?提前感谢。

3个回答

20

1
嗨 - 我按照db first的说明进行操作,但是当我定义ADO实体框架时,除了SQL服务器连接之外,我没有任何数据提供程序选项。我已更改机器配置(我正在64位上运行)。 - user1286399
要使用DBFirst,您需要从源代码进行编译(在编译期间,提供程序将在Visual Studio 2013中注册)。请问您能否提出一个具体的问题? - bubi
1
Codeplex即将关闭,如果Codeplex不存在,则前往bubibubi/JetEntityFrameworkProvider或在NuGet中搜索JetEntityFrameworkProvider。 - Sam Hobbs

8
请参考这个回答。请问您为什么需要Access,是否可以使用SQL Express代替?如果您确实需要Access,则在这种情况下EF似乎不是正确的选择。
暂时搁置Access不谈,使用EF(特别是代码优先)更改数据提供程序是完全可能的,因为EF将许多数据库细节抽象出来,使其远离您的代码;根据数据库设计,只需动态更改连接字符串即可。这的实际影响确实取决于您的数据库设计以及正在构建的应用程序的性质和复杂性。例如,请参见问题,这是另一个示例。

1
那么针对上述情况的正确解决方案是什么?任何建议将不胜感激。 - Shivam Sachan
1
下一个级别是ADO.NET。它不是ORM,而只是ORM出现之前所做的事情。你不能用Access做所有其他DBMS(如DDL)可以做的事情,但除此之外,在这里它工作得非常好。 - ygoe
1
你可能需要使用Access,因为主机公司不支持MS SQL。在2014年,这对于一个托管公司来说很奇怪。 - Tassisto
我看到这篇文章的原因是,我想将EF与SQL和Access连接起来,并使用EF将所有旧Access数据库中的数据投射到新的SQL结构中。但是通过SQL实现这一目标很麻烦。 - Mir
1
@LonelyPixel 你可以在Access中使用DDL。(我现在正在这样做,为一个兼容Access的ORM设置测试用例。) - Jonathan Allen
显示剩余2条评论

7

我们在使用MS Access时,会将Dapper作为ORM和repositories来使用。它非常出色。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接