我想在Visual Studio下用C#开发一个应用程序,我假装使用实体框架和两个Access DB(扩展名为accdb(。我发现JetEntityFrameworkProvider项目由Umberto Ballestrazzi(别名Bubi(,我看到了视频,其中解释了在Visual Studio上工作的所有过程,但我不明白。其中一个步骤需要下载和编译项目,但编译前和编译后命令失败,并显示以下消息:
错误命令"call"D:\Microsoft Visual Studio\2019\Community\Common7\IDE。。\Tools\vsvars32.bat"gautil/u JetEntityFrameworkProvider.dll"已退出,代码为9009。项目:JetDdexProvider。
错误命令"%ProgramFiles%\Microsoft SDK \Windows\v8.0A\Bin\NETFX 4.0 Tools\gacuti.exe"/u"JetEntityFrameworkProvider"已退出,返回代码3。项目:JetEntityFrameworkProvider。
根据视频指示,我已经下载了JetEntityFrameWorkProvider和DDEX Deserializer Nugets。我已经手动添加了machine.config条目,按照其他一些线程的建议,我已经将vsvars32.bat更改为vsdevcmd.bat,但我无法继续。
如何使用Access Provider创建EDMX图表?我可以将它与Access版本2007或2010、MDB和ACCDB一起使用吗?
需要注意的事项:
-
我想与Visual Studio 2019一起使用,我为Visual Studio Community 2017或之前找到的所有解决方案,如果没有更多的方法,我可以降级到2017,如果这可以解决问题,但我更喜欢使用2019。
-
我已经下载了JetEntityFrameWorkProvider版本6.2.0-rc1和DDEX Deserializer版本3.7.0 Nugets。
-
我已经按照Bubi发布的这个链接的指示来解释这个过程:https://www.youtube.com/watch?v=XHrpY_nMXrk
提前感谢您的时间和帮助。
转到NuGet包并搜索JetEntityFramework当你安装它时,你只需要将这个连接字符串添加到你的app.config文件中
<connectionStrings>
<add name="Baza" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:test.accdb" providerName="JetEntityFrameworkProvider" />
D: \test.accdb是文件的位置,如果你想在与你的应用程序相同的目录中,只需使用|DataDirectory|\test.accdb就可以了。
查看visual-studio-201x版本
本次回购的https://github.com/aspdotnetgabs/sharpdevelopmvc.它具有为Entity Framework 6使用JetEntityFrameworkProvider所需的所有功能。
它已经有以下内容:
packages.config
<package id="JetEntityFrameworkProvider" version="6.2.0-rc1" targetFramework="net452" />
csproj
<PlatformTarget>x86</PlatformTarget>
web.config
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v13.0" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="JetEntityFrameworkProvider" type="JetEntityFrameworkProvider.JetProviderServices, JetEntityFrameworkProvider" />
</providers>
</entityFramework>
<system.data>
<DbProviderFactories>
<add name="Jet Entity Framework Provider" invariant="JetEntityFrameworkProvider" description="Jet Entity Framework Provider" type="JetEntityFrameworkProvider.JetProviderFactory, JetEntityFrameworkProvider" />
</DbProviderFactories>
</system.data>
连接字符串
<add name="MyAccessDb" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|MyAccessDb.mdb" providerName="JetEntityFrameworkProvider" />
和预配置/调整空白MDB文件
/App_Data/MyAccessDb.mdb
我在Visual Studio 2019中创建了这个模板项目,所以我认为你可以去了。