35
Vote

Designer: Better navigation property names when multiple relationships to the same table

description

When multiple relationships to the same table are present the navigation properties are just postfixed with a name. We could consider using the FK name or some other means to make it clearer which is which.

This item was migrated from the DevDiv work item tracking system [ID=6053].

This work item originated from connect.microsoft.com. A member of the EF team at Microsoft should close the related Connect issue when closing this work item.

comments

ceonur54 wrote Oct 20, 2012 at 10:28 AM

you can use nhibernate for .net for more clear naming.

but i want EF to become more powerful too.

RoMiller wrote Jan 24, 2013 at 10:29 PM

EF Team Triage: We are only taking minimal changes to the designer in EF6 because we are still converting the code base to open source. We'll consider this bug for the next release.

ata2931977 wrote Feb 24, 2013 at 11:30 AM

I always use a central Look-up table for my database, and this bug kills me, kindly please fix it a soon as you can, it will make the developer life much easier then when coding with navigation properties.

Trying to go around it by changing name in designer (a nightmare when you update it)
or add some extension properties that reference the navigation properties with incorrect naming. (extra code that is not needed and when updated the edmx sometimes it make problems too.)
or change in the T4 template to generate the navigation properties, but didn't master this yet.

KubuS wrote Dec 8, 2013 at 10:47 PM

Still a problem in EF 6.0.1

For example, I get 2 properties like:
[EdmRelationshipNavigationPropertyAttribute("Warehouse", "FK_DataOverride_DocumentType_After", "DataOverride")]
public EntityCollection<DataOverride> DataOverrides
{get;set;}

[EdmRelationshipNavigationPropertyAttribute("Warehouse", "FK_DataOverride_DocumentType_Before", "DataOverride")]
public EntityCollection<DataOverride> DataOverrides1
{get;set;}
where it could simply be:
[EdmRelationshipNavigationPropertyAttribute("Warehouse", "FK_DataOverride_DocumentType_After", "DataOverride")]
public EntityCollection<DataOverride> DataOverridesDocumentTypeAfter
{get;set;}

[EdmRelationshipNavigationPropertyAttribute("Warehouse", "FK_DataOverride_DocumentType_Before", "DataOverride")]
public EntityCollection<DataOverride> DataOverridesDocumentTypeBefore
{get;set;}
All the information is already in the foreign key name used by the designer.