Entity Framework code first with Access database - c#

Is there any way I can connect EF with an Access database using code first
so that my POCO classes can create the tables in the Access database and everything will save on that file?

I'm afraid you are out of luck, there is no EF provider for MS access (or i never heard of one exists). You could try with ALinq. It's not a EF provider, but it does provide LINQ support for MS access database. Not free a solution and I never tried it, but maybe it will work for you.

Related

How do I handle database-first when the database doesn't have any links (and I can't add any)?

I have been asked to write a web site that will use an existing SQL Server database. The database was designed to work with another application, and so I can't make any potentially breaking changes to it.
Unfortunately, the database does not contain a single relational link, each table is standalone.
I know you can use EF commands to scaffold a database and create entity classes, but I would like the code to know the relationships that should exist between the tables.
I thought about scaffolding the database, then modifying the created classes to include the links, but I'm not sure if that would allow EF to load related entities. Also, as I will need to add some new tables to the database, I'm worried that EF will try and create those links when I do the migration.
Is there any way to do this?

Read and write to Access DB with C#

I am making a very basic program for a friend of mine that will need a very basic DataBase. I will have about 3 tables at max, I was wondering if it is possible to use access database files easily in C# just like a normal SQL database and if so how? I have seen some tutorials using OLEDB but none really give me a clear way to do things.
It doesn't really go with the Access need but i throw this answer based on the OPs' intention to digg into SQLite.
So i would go for SQLite for its simplicity and efficiency.
See these posts on a very fast and easy way to work with SQLite and Entity Framework:
GETTING STARTED, USING SQLITE WITH .NET
USING SQLITE WITH ENTITY FRAMEWORK 6 AND THE REPOSITORY PATTERN
SQLITE WITH ENTITY FRAMEWORK CODE FIRST AND MIGRATION
Entity Framework 5 on SQLite
Portable databases (II): using SQLite with Entity Framework

Is database recovery from EF model possible?

I had a web service project, with a database integration of course :) I use Entity Framework, so I generated my EF model from my db (sql server express). Everything was okay till my computer got broke. I had my project files backed up so I recovered them. But I didn't have the db backup(shame).
As far as I know there is this concept Code First, and what I am wondering is can I use it to regenerate my db? Otherwise I'll have to try getting the db from the old disk, or rewriting the whole db.
Before going into those struggles I wanted ask and get a proper answer to this since I thought it could help others too.
Of course, you can.
Specify a connection string in your DbContext constructor, which points to a non-existent database, and the database will be created from scratch.
The EF workflows are "reversible" in the sense that you can go from DB to model or from model to DB, no matter if the model is a graphic EDM or a DbContext.

Entity Framework Load/Save Data

I am using SQLite with the Entity Framework in a C# Windows Form application. I have chosen to use an in-memory database. I'm trying to load a database file that exists on disk into memory. I'll also need to save what's in memory to the disk.
This seems like a relatively simple task but I can't find an elegant solution to it without hard-coding table creation and updating the queries whenever I change something (I.E: Not feasible)
If anyone can provide assistance, it would be greatly appreciated.
Actually, you may easily use SQLite in-memory database with entity framework.
Look at the following threads as an initial guideline:
In Memory Sqlite Entity Framework Context
Integration Testing Entity Framework code first with in-memory database

Best way to do ORM with Access DB as datasource

I've gone back and forth on this problem and can't seem to figure out the best way to do this.
Here's the situation:
Access database (3rd party product) with data I need in it, from a good number of tables (18 tables)
Ideally, need to try to get records into strongly-typed objects somehow so I can query around with LINQ
LINQ to SQL classes don't support ODBC provider (this would have gotten me home free)
I do NOT need to insert/update/delete. Only select/read.
I've toyed around with the idea of just exporting the tables to XML (it's not that much) but then I'm still faced with the problem of building the schema and generating the classes. Since it's an ODBC source there should be a way to ORM this, right?
How would you solve this?
You can do this using nHibernate, since it supports MS Access as a backend. Here are the details of using nHibernate with MS Access. It uses NHibernate.JetDriver.dll to access the Jet data engine (MS Access).
Just realize that MS Access isn't going to give you the same performance/support/etc as most other DB backends with an ORM.
The dll for using NHibernate to Acccess seems to be on sourceForge (just googling, not checking)
http://sourceforge.net/project/shownotes.php?release_id=460590
If you are just querying access, it might be worth defining views in a relationnal database
This way you will have a solution for using a form of cache/snapshot later on(for example by converting your views into table that you refresh each hour/ 5min. etc depending on your expectations)
if the performance degrade too much.
I just answered my own question...
I can just establish the ODBC connection in Server Explorer, and drag the tables straight into a predefined DataSet and use a TableAdapter.Fill()

Categories

Resources