This project has moved. For the latest updates, please go here.

Access DDL / EF requirements

Aug 8, 2015 at 4:52 AM
I previously understood that one of the issues with building an EF provider for MS-Access was that Access DDL was less robust than other database engines. However, if I understand your home page correctly, this provider only supports EF code-first.

If the above assertion is true, wouldn't it be simpler to implement EF database-first, or perhaps my understanding is incorrect?

Thanks for your clarification. I hope to use this EF provider soon.
Coordinator
Aug 8, 2015 at 8:52 AM
Edited Aug 8, 2015 at 8:56 AM
Actually MS Access DDL has some limitations (the worst is field renaming) and has less data types than SQL Server but is not a big limitation (for me - I use the provider to make tests on my applications - is not a limitation at all). Other issues in building EF Provider for MS Access are that EF needs a DBMS that supports multiple commands and the management of latest inserted IdEntity. For this and other reasons to implement the provider you need to write a new Ado.NET provider for MS Access over the OleDB provider.

About DBFirst there are 2 issues, one solved and the other not solved.
  1. MSAccess does not have system tables (it has only few and hard to use). To retrieve schema informations you need to use OleDB but EF expects only to run queries. So, in Ado.NET provider there is a support to retrieve schema informations (it converts queries to OleDB calls).
  2. You need to build some services to allow visual studio to use the provider to retrieve informations about schema. I implemented thos services in the provider but for some reasons does not work. Visual Studio asks for services related to EF 4 but my provider is for EF 6. I did not investigate more than some hours and I gave up (I don't need it because I work with a CodeFirst approach or, if I have a DB, I generate POCOs as a starting point for CodeFirst approach). Probably it could be enough to install EF 6 Power Tools for Visual Studio and try with them.
Coordinator
Aug 10, 2015 at 9:33 AM
After your question I made another test installing "Entity Framework 6 Tools for Visual Studio 2012 & 2013" from here https://www.microsoft.com/en-us/download/details.aspx?id=40762
The problem was only that, now DbFirst from MS Access seems work (but I'm not a great tester because I always use codefirst ).
I will post a small fix and a tutorial to make it work.