internal void WriteNavigationPropertyElementHeader(NavigationProperty member) { _xmlWriter.WriteStartElement(XmlConstants.NavigationProperty); _xmlWriter.WriteAttributeString(XmlConstants.Name, member.Name); _xmlWriter.WriteAttributeString( XmlConstants.Relationship, GetQualifiedTypeName(XmlConstants.Self, member.Association.Name)); _xmlWriter.WriteAttributeString(XmlConstants.FromRole, member.GetFromEnd().Name); _xmlWriter.WriteAttributeString(XmlConstants.ToRole, member.ToEndMember.Name); }
public void EdmNavigationProperty_BadNavigationPropertyBadFromRoleType() { var parentEntity = new EntityType("P", "N", DataSpace.CSpace); var targetEntity = new EntityType("T", "N", DataSpace.CSpace); var sourceEntity = new EntityType("S", "N", DataSpace.CSpace); var associationType = new AssociationType("A", XmlConstants.ModelNamespace_3, false, DataSpace.CSpace) { SourceEnd = new AssociationEndMember("S", sourceEntity), TargetEnd = new AssociationEndMember("T", targetEntity) }; var navigationProperty = new NavigationProperty("N", TypeUsage.Create(targetEntity)) { RelationshipType = associationType }; parentEntity.AddMember(navigationProperty); var model = new EdmModel(DataSpace.CSpace); model.AddItem(parentEntity); var validationContext = new EdmModelValidationContext(model, true); DataModelErrorEventArgs errorEventArgs = null; validationContext.OnError += (_, e) => errorEventArgs = e; EdmModelSemanticValidationRules .EdmNavigationProperty_BadNavigationPropertyBadFromRoleType .Evaluate(validationContext, navigationProperty); Assert.NotNull(errorEventArgs); Assert.Same(navigationProperty, errorEventArgs.Item); Assert.Equal( Strings.BadNavigationPropertyBadFromRoleType( navigationProperty.Name, sourceEntity.Name, navigationProperty.GetFromEnd().Name, navigationProperty.Association.Name, parentEntity.Name), errorEventArgs.ErrorMessage); }
internal void WriteNavigationPropertyElementHeader(NavigationProperty member) { _xmlWriter.WriteStartElement(XmlConstants.NavigationProperty); _xmlWriter.WriteAttributeString(XmlConstants.Name, member.Name); _xmlWriter.WriteAttributeString( XmlConstants.Relationship, GetQualifiedTypeName(XmlConstants.Self, member.Association.Name)); _xmlWriter.WriteAttributeString(XmlConstants.FromRole, member.GetFromEnd().Name); _xmlWriter.WriteAttributeString(XmlConstants.ToRole, member.ToEndMember.Name); }
public void EdmNavigationProperty_BadNavigationPropertyBadFromRoleType() { var parentEntity = new EntityType("P", "N", DataSpace.CSpace); var targetEntity = new EntityType("T", "N", DataSpace.CSpace); var sourceEntity = new EntityType("S", "N", DataSpace.CSpace); var associationType = new AssociationType("A", XmlConstants.ModelNamespace_3, false, DataSpace.CSpace) { SourceEnd = new AssociationEndMember("S", sourceEntity), TargetEnd = new AssociationEndMember("T", targetEntity) }; var navigationProperty = new NavigationProperty("N", TypeUsage.Create(targetEntity)) { RelationshipType = associationType }; parentEntity.AddMember(navigationProperty); var model = new EdmModel(DataSpace.CSpace); model.AddItem(parentEntity); var validationContext = new EdmModelValidationContext(model, true); DataModelErrorEventArgs errorEventArgs = null; validationContext.OnError += (_, e) => errorEventArgs = e; EdmModelSemanticValidationRules .EdmNavigationProperty_BadNavigationPropertyBadFromRoleType .Evaluate(validationContext, navigationProperty); Assert.NotNull(errorEventArgs); Assert.Same(navigationProperty, errorEventArgs.Item); Assert.Equal( Strings.BadNavigationPropertyBadFromRoleType( navigationProperty.Name, sourceEntity.Name, navigationProperty.GetFromEnd().Name, navigationProperty.Association.Name, parentEntity.Name), errorEventArgs.ErrorMessage); }