开发者

How do I correctly set an association between two objects in the Entity Framework 4 Entitydesigner?

开发者 https://www.devze.com 2023-01-15 18:14 出处:网络
For a new project I\'m trying to create my business classes first and create the real database tables later. Therefore I\'m using the Entity Framework 4 Designer. A created a new \"ADO.Net Entity Data

For a new project I'm trying to create my business classes first and create the real database tables later. Therefore I'm using the Entity Framework 4 Designer. A created a new "ADO.Net Entity Data model" file, with the extension .edmx.

I created two Entities:

How do I correctly set an association between two objects in the Entity Framework 4 Entitydesigner?

I want to add a 1 to nc relation between Product -> Group. If I'd created the MSSQL database first, I would have added a column IDGroup to the Table Product and referenced Product.IDGroup to Group.IDGroup. As far as I can see, I can't add such association in the designer if I add a new Property called IDGroup to the Product Entity

This is how I add the mapping:

How do I correctly set an association between two objects in the Entity Framework 4 Entitydesigner?

Which results in:

How do I correctly set an association between two objects in the Entity Framework 4 Entitydesigner?

Now the part what this question is about: If I add two tables from an existing MSSQL database to the edmx file, I'll get the compile error:

Error 3027: No mapping specified for the following EntitySet/AssociationSet - GroupSet, ProductSet

What does that error mean and what must I do to fix this? If I delete those two tables, I'll receive a warning instead:

Error 2062: No ma开发者_JAVA百科pping specified for instances of the EntitySet and AssociationSet in the EntityContainer myContainer.

Something tells me, I'm doing this all wrong and this is just basic stuff. How can I do it right?


I just ran into this myself & when I Googled it (I hit your question).

I was able to double click on the line (association line) in the designer. Fill in the properties there and I got it working.

I also had to close VS and re-open it to get some of the errors reported to go away...

Can't say this is the correct answer - just fumbling around and seeming to get results.


Something that might be easy to miss is to Generate DataBase from model. From what I understand this has to be run after every change made to the Database .edmx.

This simple mistake happened to me and lead to frustration for a few minutes =)


I got this error when I generated the model from the database using the ADO.Net DBContext Generator under VS2010 SP1 with EF4.1 installed. The database I was using did NOT have any referential integrity between the primary and foreign key fields.

The solution was to double click the association line which brings up the Referential Contstrainst dialog box. I then set the Principal field to be the table with the primary key, the Dependent as the table with the foreign key, set the foreign key names to match in the drop down and clicked OK.

The code then compiled and I was able to work across the entities using var foreign = DBContext.Primary.First().Foreign etc

Steve


I had the same error, and one bit of configuration that the "Add Association" dialog didn't help me set was the "Referential Constraint" property. Once I configured that I rebuilt the solution and everything was cool.


I've had this error when I've deleted an association from the model diagram but the association remains in the underlying XML in the .edmx. They only way I've found to fix that is to hand-edit the edmx to remove references to the offending association.


All you just have to do is delete all your tables from edmx file. Now right click in edmx file and choose update form database option. Update Ef, issue will be resolved.


I am using database first approach and encountered the same issue.

what was causing the problem is on of my coworker deleted one of the table from the database and forgot to update the model.

My solution is find the deleted entity from the diagram. (model browser could be useful.) Then delete it from the diagram, since EF doesn't remove entities if you deleted the table from the database.

Build, and check Error List window (Ctrl+E,W).

Done.


I have also found that rebuilding your project after changes to your Entity Framework context and models can sometimes resolve these errors, especially if the Entity Framework contexts are in a different project.

0

精彩评论

暂无评论...
验证码 换一张
取 消