curiouswebster
asked on
I add a table into the Entity Framework 4.0, but the table does not show up
I created a new table and created the table relationships, just like I have done over a dozen times. But when I add the table in, the .edmx file does not display the new table.
I see a mention of the table name in the .designer.cs file, but it's not at all like the other siccessful ones before it. (See code for sample)
Thenew file is "follow", but the relationships defined in SQL Server are:
FK_follow_to_entity
FK_follow_to_user
Any ideas what could be wrong?
Thanks,
newbieweb
I see a mention of the table name in the .designer.cs file, but it's not at all like the other siccessful ones before it. (See code for sample)
Thenew file is "follow", but the relationships defined in SQL Server are:
FK_follow_to_entity
FK_follow_to_user
Any ideas what could be wrong?
Thanks,
newbieweb
[assembly: EdmRelationshipAttribute("RDDBDEVModel", "FK_comments_to_entity", "Entity", System.Data.Metadata.Edm.RelationshipMultiplicity.One, typeof(RDDBWEB2.Models.Entity), "comment", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(RDDBWEB2.Models.Comment), true)]
[assembly: EdmRelationshipAttribute("RDDBDEVModel", "FK_comments_to_user", "User", System.Data.Metadata.Edm.RelationshipMultiplicity.One, typeof(RDDBWEB2.Models.User), "comment", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(RDDBWEB2.Models.Comment), true)]
[assembly: EdmRelationshipAttribute("RDDBDEVModel", "FK_attachment_to_entity", "Entity", System.Data.Metadata.Edm.RelationshipMultiplicity.One, typeof(RDDBWEB2.Models.Entity), "attachment", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(RDDBWEB2.Models.Attachment), true)]
[assembly: EdmRelationshipAttribute("RDDBDEVModel", "FK_attachment_to_user", "User", System.Data.Metadata.Edm.RelationshipMultiplicity.One, typeof(RDDBWEB2.Models.User), "attachment", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(RDDBWEB2.Models.Attachment), true)]
[assembly: EdmRelationshipAttribute("RDDBDEVModel", "follow", "Entity", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(RDDBWEB2.Models.Entity), "User", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(RDDBWEB2.Models.User))]
I think that you are going to have to explain how you added the table to the designer.
ASKER
I created the table in the database, like always. I also created the table relationships, the way I have done lots of times. Then I right click the graphical .edmx file and select "Update From Database" or some similar choice on the context menu. I see three tabs, Add, Update, Delete. Under Add I see the new table name, check it, that get it added in. BUT it does not show up graphically the way the tables get added and interconnected, based on the table relastionships defined.
This is the only way I know to add a table. Is there a place where an error would be written, if something failed?
Thanks,
newbieweb
This is the only way I know to add a table. Is there a place where an error would be written, if something failed?
Thanks,
newbieweb
Usually, you see the validation errors in the Error List, but there is no guarantee that exceptions will shown in that window. What happens if you create a new, test .edmx file, and add that table?
ASKER
I will try that on Monday. That's a great idea. I wil let you know.
Thanks.
Thanks.
ASKER
I created a new edmx file and selected Add for all the tables, and once again the Follow table did not appear. I suspect there is something amiss where the table relationships we have created do not meet the EF4 requirements.
The Follow table has two columns:
entity_id (FK)
user_id (FK)
The table records the associations between the User table and the Entity table. A single user can follow (e.g. track) multiple entities. Multiple user can also follow the same entity.
From a SQL perspective, this works. But I think from an EF4 perspective, perhaps, this is not correct.
What do you think?
The Follow table has two columns:
entity_id (FK)
user_id (FK)
The table records the associations between the User table and the Entity table. A single user can follow (e.g. track) multiple entities. Multiple user can also follow the same entity.
From a SQL perspective, this works. But I think from an EF4 perspective, perhaps, this is not correct.
What do you think?
Association tables, for many-to-many relationships, are valid entities for EF4, so I don't know why it isn't adding the table. When you added that table to the model, did you add the User and the Entity tables also?
ASKER
yes, but I will try creating another trial run of creating another model to be certain.
Can you show me the XML from the test model, if it doesn't work again?
ASKER
Not sure what you meant by the XML. I tried again and it failed again.
I changed the follow table to following in case it was a reserved word. But that did nothing.
I attached the meta data that shows the relationships defined in the database (shown in my original post) are not used in the metadata.
Let me know how to find the XML.
I changed the follow table to following in case it was a reserved word. But that did nothing.
I attached the meta data that shows the relationships defined in the database (shown in my original post) are not used in the metadata.
Let me know how to find the XML.
(RDDBWEB2.Models.user), "project", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(RDDBWEB2.Models.project), true)]
[assembly: EdmRelationshipAttribute("RDDBDEVModel1", "FK_project_user_requestor", "user", System.Data.Metadata.Edm.RelationshipMultiplicity.One, typeof(RDDBWEB2.Models.user), "project", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(RDDBWEB2.Models.project), true)]
[assembly: EdmRelationshipAttribute("RDDBDEVModel1", "FK_status_hist_to_status", "status", System.Data.Metadata.Edm.RelationshipMultiplicity.One, typeof(RDDBWEB2.Models.status), "status_history", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(RDDBWEB2.Models.status_history), true)]
[assembly: EdmRelationshipAttribute("RDDBDEVModel1", "following", "entity", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(RDDBWEB2.Models.entity), "user", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(RDDBWEB2.Models.user))]
[assembly: EdmRelationshipAttribute("RDDBDEVModel1", "user_data_admin", "data_admin", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(RDDBWEB2.Models.data_admin), "user", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(RDDBWEB2.Models.user))]
ASKER
Also, User and Entity DID show up in both the original edmx and the sample one I just made up.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks. Sometimes a good "old fashioned" Google search does the job:)