How can I add tables to a model? - entity-framework

I added new table to my database and I managed to add it to my data model, using "Update model from database" option. But I cant generate class to acces this table in code. "Add code generation item" results into creating classes for all tables i have in my database.
Well, it seems to be a duplicate, but don't delete this topic at once please, for I've been searching for solution quite a long time and found nothing helpful.

You don't need to add code generation item again if you already did it once. Normally it should be enough to save your EDMX file and generation should trigger. If it for any reason doesn't work, right click on .tt file responsible for generating your classes in the Solution Explorer and select Run Custom Tool from the context menu.

Related

Is there any way to create diagram for localdb?

I have created a database using Entity Framework code first approach, and now I am trying to verify the relations of data tables but unfortunately after wasting 2 days still unable to get any solution.
According to this article the following query solves the problem.
alter authorization on database::[your-db-name-no-quotes] to sa
I tried it and it worked for me.
You might try to use Entity Framework Power Tools that is a Visual Studio add-in that was used to create the data model diagrams shown in these tutorials. The tools can also do other function such as generate entity classes based on the tables in an existing database so that you can use the database with Code First. After you install the tools, some additional options appear in context menus. For example, when you right-click your context class in Solution Explorer, you get an option to generate a diagram. When you're using Code First you can't change the data model in the diagram, but you can move things around to make it easier to understand.
There is a possibility to create a diagram from an existing database. You could use SQL Server Management Studio Express diagram generator. Right-click in diagrams folder in the database and choose create a new diagram.
Please also refer to this answer: Generate table relationship diagram from existing schema (SQL Server)

Entity Framework does not remove deleted table (EF6)

I have a database-first model, if I "Update model from database" the wizard shows the new table and it is added to the model just fine.
If I delete that table and update again, the table shows on the 'Delete' tab of the wizard but after clicking 'finish' the object still shows on the edmx diagram and the table's class file is still in my project - am I missing something here?
Strangely it seems that this is by design, it means that for now you need to know the DB design changes and manage the EF model manually.
I have logged a feature request on the EF site.

Creating entity diagrams from code first classes

I was just reading Asp.net MVC3 tutorials (Models (Data))
On this page tutorial 4 of 10 on the ASP.NET website, it is shown that an entity diagram is created from code first classes. How to generate them?
This can be done very easily by using the Class Diagram. Add New Item > Class Diagram. Then drag and drop your code first classes into the diagram from the solution explorer.
A Class Diagram is OK, but it doesn't automatically show the relationships between classes. The slickest way that I have used is Entity Framework Power Tools. Their description of the tool:
When right-clicking on a C# project, the following context menu function is supported: 1) Reverse Engineer Code First - Generates POCO classes, derived DbContext and Code First mapping for an existing database.
Assuming your schema has been created from the Code First classes you can reverse the db into a an edmx to visualise the Model. Any classes generated from this obviously won't be related to your Code First classes though.
Create a copy of your project. Open the copy and add a new item/ADO.NET Entity Data Model. Edit the diagram for layout and print to a .pdf file. Delete the copy of the project.
Anytime you make a change you will have to re-create the diagram and edit the layout, but I can usually get through the whole process in about 15 minutes.

Update model from database - refresh one table

Is it possible to refresh only one entity in entity framework designer? Every time I refresh model from database, it refreshes all entities. The problem is that this mechanism doesn't recognize properly primary keys in views, so I have to correct it manually. Am I missing something?
No, you're not missing anything. When you update model using the GUI designer, the entire storage schema is regenerated. At least, that's how it works in Entity Framework 1.
I can't tell you if you can or can't do it, but I have one clue how to figure it out.
http://code.msdn.microsoft.com/EdmGen2
EdmGen2 contains source code and dll probably with functionalities from usual EdmGen.
Unfortunately I didn't have time to investigate this further. Hope this helps.

What's the easiest way to refresh Entity Model after adding/deleting DB fields?

Does anyone know what the esiest way to update the entity model after adding/deleting the fields in the database?
I am adding a few new fields to my database, then choose "Update Model from DB" and nothing happens. The model stays intact. Did anyone encounter the same problem?
Thanks for any feedback!
With EF that shipped for .net 3.5 I tend to follow the following steps:
Delete the connectionstring
Delete the model
Generate a new model
Build solution
This is perhaps not a very solid approach but it saves me time in the long run. In the future it is easier and more stable to do a refresh but I have gone from autogenerating my model to model-first.
I would definitely check out the EDM Generator which allows you to do a full generation of the model from scratch - Click here to go to the MSDN reference. It has saved me a lot of time and hope it will do the same for you.