First, note that LINQ-to-SQL is not (AFAIK) validated for use on Access. It generally works, but MMMV.

Personally, I would approach this by importing (migrating) the tables from the Access database into a SQL Server Express instance, and using that to generate the model (of course, the tooling might even work against Access, but I assume they don't - hence the question). With the model generated, you should be able to point it (at runtime - via connection-string or connection) at your access database instead.

You might also consider: why not leave it as a SQL Server Express node - it works well, and is better supported in terms of LINQ-to-SQL.

Note also that there are other LINQ-to-SQL-like tools that may work for your purposes; DbLinq, dapper-dot-net, etc - and a few more heavy-weight tools (EF, NHibernate, LLBLGen Pro, etc)


XPO, an ORM tool from Developer Express, would allow you to create .Net classes directly from your Access 2007/2010 database and use Linq to create queries.

The good thing is that if you wish to change database backend, say for instance that you transferred your data from Access to SQL Server or MySQL or PostgreSQL, etc you just need to change the database connection string, not your code.

Documentation is available online.

Related Articles