Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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:
alt text

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: alt text

Which results in:
alt text

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 mapping 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?

like image 452
citronas Avatar asked Sep 13 '10 13:09

citronas


2 Answers

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.

like image 118
Jason Jarrett Avatar answered Nov 03 '22 10:11

Jason Jarrett


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 =)

like image 30
pabbie Avatar answered Nov 03 '22 10:11

pabbie