Entity Framework - Generating Classes
c#, entity-framework
Solution
1) First you need to generate `EDMX` model using your database. To do that you should add new item to your project:
- Select `ADO.NET Entity Data Model` from the Templates list.
- On the Choose Model Contents page, select the Generate from Database option and click Next.
- Choose your database.
- On the Choose Your Database Objects page, check the Tables. Choose Views or Stored Procedures if you need.
So now you have `Model1.edmx` file in your project.
2) To generate classes using your model:
- Open your `EDMX` model designer.
- On the design surface Right Click –> Add Code Generation Item…
- Select Online templates.
- Select `EF 4.x DbContext Generator for C#`.
- Click ‘Add’.
Notice that two items are added to your project:
- `Model1.tt` (This template generates very simple POCO classes for each entity in your model)
- `Model1.Context.tt` (This template generates a derived DbContext to use for querying and persisting data)
3) Read/Write Data example:
var dbContext = new YourModelClass(); //class derived from DbContext
var contacts = from c in dbContext.Contacts select c; //read data
contacts.FirstOrDefault().FirstName = "Alex"; //edit data
dbContext.SaveChanges(); //save data to DB
Don't forget that you need 4.x version of EntityFramework. You can download EF 4.1 here: Entity Framework 4.1.
Problem
I have an existing database. I was hoping there was a way to generate class files from this database. However, I seem to see a lot of generating the database from the class files. Is there a way to generate class files from an existing database using the Entity Framework? If so how? Can someone point me to a tutorial?