本文整理汇总了C#中System.Data.Entity.ModelConfiguration.Configuration.Properties.Navigation.NavigationPropertyConfiguration.Configure方法的典型用法代码示例。如果您正苦于以下问题:C# NavigationPropertyConfiguration.Configure方法的具体用法?C# NavigationPropertyConfiguration.Configure怎么用?C# NavigationPropertyConfiguration.Configure使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Data.Entity.ModelConfiguration.Configuration.Properties.Navigation.NavigationPropertyConfiguration
的用法示例。
在下文中一共展示了NavigationPropertyConfiguration.Configure方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Configure_should_set_configuration_annotations
public void Configure_should_set_configuration_annotations()
{
var navigationPropertyConfiguration = new NavigationPropertyConfiguration(new MockPropertyInfo());
var navigationProperty = new EdmNavigationProperty { Association = new EdmAssociationType().Initialize() };
navigationPropertyConfiguration.Configure(navigationProperty, new EdmModel(), new EntityTypeConfiguration(typeof(object)));
Assert.NotNull(navigationProperty.GetConfiguration());
Assert.NotNull(navigationProperty.Association.GetConfiguration());
}
示例2: Configure_should_configure_ends
public void Configure_should_configure_ends()
{
var navigationPropertyConfiguration = new NavigationPropertyConfiguration(new MockPropertyInfo())
{
EndKind = EdmAssociationEndKind.Optional,
InverseEndKind = EdmAssociationEndKind.Many
};
var associationType = new EdmAssociationType().Initialize();
navigationPropertyConfiguration.Configure(
new EdmNavigationProperty { Association = associationType },
new EdmModel(), new EntityTypeConfiguration(typeof(object)));
Assert.Equal(EdmAssociationEndKind.Many, associationType.SourceEnd.EndKind);
Assert.Equal(EdmAssociationEndKind.Optional, associationType.TargetEnd.EndKind);
}
示例3: Configure_should_set_configuration_annotations
public void Configure_should_set_configuration_annotations()
{
var navigationPropertyConfiguration = new NavigationPropertyConfiguration(new MockPropertyInfo());
var navigationProperty = new NavigationProperty("N", TypeUsage.Create(new EntityType()))
{
RelationshipType = new AssociationType()
};
navigationProperty.Association.SourceEnd = new AssociationEndMember("S", new EntityType());
navigationProperty.Association.TargetEnd = new AssociationEndMember("T", new EntityType());
navigationPropertyConfiguration.Configure(navigationProperty, new EdmModel(), new EntityTypeConfiguration(typeof(object)));
Assert.NotNull(navigationProperty.GetConfiguration());
Assert.NotNull(navigationProperty.Association.GetConfiguration());
}
示例4: Configure_should_set_configuration_annotations
public void Configure_should_set_configuration_annotations()
{
var navigationPropertyConfiguration = new NavigationPropertyConfiguration(new MockPropertyInfo(typeof(AType1), "N"));
var navigationProperty = new NavigationProperty("N", TypeUsage.Create(new EntityType("E", "N", DataSpace.CSpace)))
{
RelationshipType = new AssociationType("A", XmlConstants.ModelNamespace_3, false, DataSpace.CSpace)
};
navigationProperty.Association.SourceEnd = new AssociationEndMember("S", new EntityType("E", "N", DataSpace.CSpace));
navigationProperty.Association.TargetEnd = new AssociationEndMember("T", new EntityType("E", "N", DataSpace.CSpace));
navigationPropertyConfiguration.Configure(
navigationProperty, new EdmModel(DataSpace.CSpace), new EntityTypeConfiguration(typeof(object)));
Assert.NotNull(navigationProperty.GetConfiguration());
Assert.NotNull(navigationProperty.Association.GetConfiguration());
}
示例5: Configure_should_configure_ends
public void Configure_should_configure_ends()
{
var navigationPropertyConfiguration = new NavigationPropertyConfiguration(new MockPropertyInfo())
{
RelationshipMultiplicity = RelationshipMultiplicity.ZeroOrOne,
InverseEndKind = RelationshipMultiplicity.Many
};
var associationType = new AssociationType("A", XmlConstants.ModelNamespace_3, false, DataSpace.CSpace);
associationType.SourceEnd = new AssociationEndMember("S", new EntityType("E", "N", DataSpace.CSpace));
associationType.TargetEnd = new AssociationEndMember("T", new EntityType("E", "N", DataSpace.CSpace));
navigationPropertyConfiguration.Configure(
new NavigationProperty("N", TypeUsage.Create(associationType.TargetEnd.GetEntityType()))
{
RelationshipType = associationType
},
new EdmModel(DataSpace.CSpace), new EntityTypeConfiguration(typeof(object)));
Assert.Equal(RelationshipMultiplicity.Many, associationType.SourceEnd.RelationshipMultiplicity);
Assert.Equal(RelationshipMultiplicity.ZeroOrOne, associationType.TargetEnd.RelationshipMultiplicity);
}
示例6: Configure_should_configure_inverse
public void Configure_should_configure_inverse()
{
var inverseMockPropertyInfo = new MockPropertyInfo();
var navigationPropertyConfiguration = new NavigationPropertyConfiguration(new MockPropertyInfo())
{
InverseNavigationProperty = inverseMockPropertyInfo
};
var associationType = new EdmAssociationType().Initialize();
var inverseAssociationType = new EdmAssociationType().Initialize();
var model = new EdmModel().Initialize();
model.AddAssociationType(inverseAssociationType);
var inverseNavigationProperty
= model.AddEntityType("T")
.AddNavigationProperty("N", inverseAssociationType);
inverseNavigationProperty.SetClrPropertyInfo(inverseMockPropertyInfo);
navigationPropertyConfiguration.Configure(
new EdmNavigationProperty { Association = associationType }, model, new EntityTypeConfiguration(typeof(object)));
Assert.Same(associationType, inverseNavigationProperty.Association);
Assert.Same(associationType.SourceEnd, inverseNavigationProperty.ResultEnd);
Assert.Equal(0, model.GetAssociationTypes().Count());
}
示例7: Configure_should_validate_consistency_of_inverse_end_kind_when_already_configured
public void Configure_should_validate_consistency_of_inverse_end_kind_when_already_configured()
{
var associationType = new EdmAssociationType().Initialize();
var mockPropertyInfo = new MockPropertyInfo();
var navigationPropertyConfigurationA
= new NavigationPropertyConfiguration(mockPropertyInfo)
{
EndKind = EdmAssociationEndKind.Optional
};
associationType.SetConfiguration(navigationPropertyConfigurationA);
var navigationPropertyConfigurationB
= new NavigationPropertyConfiguration(new MockPropertyInfo())
{
InverseEndKind = EdmAssociationEndKind.Many,
InverseNavigationProperty = mockPropertyInfo
};
Assert.Equal(Strings.ConflictingMultiplicities("P", typeof(object)), Assert.Throws<InvalidOperationException>(() => navigationPropertyConfigurationB.Configure(
new EdmNavigationProperty { Association = associationType },
new EdmModel(), new EntityTypeConfiguration(typeof(object)))).Message);
}
示例8: Configure_should_configure_delete_action
public void Configure_should_configure_delete_action()
{
var mockType = new MockType();
var navigationPropertyConfiguration = new NavigationPropertyConfiguration(new MockPropertyInfo())
{
DeleteAction = EdmOperationAction.Cascade,
};
var associationType = new EdmAssociationType().Initialize();
associationType.SourceEnd.EntityType = new EdmEntityType();
associationType.SourceEnd.EntityType.SetClrType(mockType);
associationType.SourceEnd.EndKind = EdmAssociationEndKind.Many; // make this the principal
associationType.TargetEnd.EndKind = EdmAssociationEndKind.Optional;
navigationPropertyConfiguration.Configure(
new EdmNavigationProperty { Association = associationType },
new EdmModel(), new EntityTypeConfiguration(typeof(object)));
Assert.Equal(EdmOperationAction.Cascade, associationType.TargetEnd.DeleteAction);
}
示例9: Configure_should_configure_mapping
public void Configure_should_configure_mapping()
{
var manyToManyAssociationMappingConfiguration = new ManyToManyAssociationMappingConfiguration();
manyToManyAssociationMappingConfiguration.ToTable("Foo");
var navigationPropertyConfiguration = new NavigationPropertyConfiguration(new MockPropertyInfo())
{
AssociationMappingConfiguration = manyToManyAssociationMappingConfiguration
};
var databaseMapping = new DbDatabaseMapping().Initialize(new EdmModel().Initialize(), new DbDatabaseMetadata());
var associationSetMapping = databaseMapping.AddAssociationSetMapping(new EdmAssociationSet { ElementType = new EdmAssociationType() });
associationSetMapping.Table = new DbTableMetadata();
associationSetMapping.AssociationSet.ElementType.SetConfiguration(navigationPropertyConfiguration);
navigationPropertyConfiguration.Configure(associationSetMapping, databaseMapping);
Assert.Equal("Foo", associationSetMapping.Table.GetTableName().Name);
}
示例10: Configure_should_ensure_consistency_of_principality_when_already_configured
public void Configure_should_ensure_consistency_of_principality_when_already_configured()
{
var associationType = new AssociationType("A", XmlConstants.ModelNamespace_3, false, DataSpace.CSpace);
var sourceEntityType = new EntityType("SE", "N", DataSpace.CSpace);
associationType.SourceEnd = new AssociationEndMember("S", sourceEntityType);
var targetEntityType = new EntityType("TE", "N", DataSpace.CSpace);
associationType.TargetEnd = new AssociationEndMember("T", targetEntityType);
var navPropertyInfoA = new MockPropertyInfo(typeof(AType1), "N1");
var navigationPropertyConfigurationA = new NavigationPropertyConfiguration(navPropertyInfoA);
associationType.SetConfiguration(navigationPropertyConfigurationA);
var navPropertyA = new NavigationProperty("N1", TypeUsage.Create(targetEntityType));
navPropertyA.SetClrPropertyInfo(navPropertyInfoA);
navPropertyA.RelationshipType = associationType;
navPropertyA.ToEndMember = associationType.TargetEnd;
navPropertyA.FromEndMember = associationType.SourceEnd;
sourceEntityType.AddNavigationProperty(navPropertyA);
var navPropertyInfoB = new MockPropertyInfo(typeof(AType1), "N2");
var navigationPropertyConfigurationB
= new NavigationPropertyConfiguration(navPropertyInfoB)
{
IsNavigationPropertyDeclaringTypePrincipal = false
};
var navPropertyB = new NavigationProperty("N2", TypeUsage.Create(sourceEntityType));
navPropertyB.SetClrPropertyInfo(navPropertyInfoB);
navPropertyB.RelationshipType = associationType;
navPropertyB.ToEndMember = associationType.SourceEnd;
navPropertyB.FromEndMember = associationType.TargetEnd;
targetEntityType.AddNavigationProperty(navPropertyB);
var model = new EdmModel(DataSpace.CSpace);
model.AddItem(sourceEntityType);
model.AddItem(targetEntityType);
navigationPropertyConfigurationB.Configure(
new NavigationProperty("N", TypeUsage.Create(associationType.TargetEnd.GetEntityType()))
{
RelationshipType = associationType
},
model, new EntityTypeConfiguration(typeof(object)));
Assert.Equal(true, navigationPropertyConfigurationA.IsNavigationPropertyDeclaringTypePrincipal);
}
示例11: Configure_should_configure_inverse
public void Configure_should_configure_inverse()
{
var inverseMockPropertyInfo = new MockPropertyInfo();
var navigationPropertyConfiguration = new NavigationPropertyConfiguration(new MockPropertyInfo())
{
InverseNavigationProperty = inverseMockPropertyInfo
};
var associationType = new AssociationType("A", XmlConstants.ModelNamespace_3, false, DataSpace.CSpace);
associationType.SourceEnd = new AssociationEndMember("S", new EntityType("E", "N", DataSpace.CSpace));
associationType.TargetEnd = new AssociationEndMember("T", new EntityType("E", "N", DataSpace.CSpace));
var inverseAssociationType = new AssociationType("A", XmlConstants.ModelNamespace_3, false, DataSpace.CSpace);
inverseAssociationType.SourceEnd = new AssociationEndMember("S", new EntityType("E", "N", DataSpace.CSpace));
inverseAssociationType.TargetEnd = new AssociationEndMember("T", new EntityType("E", "N", DataSpace.CSpace));
var model = new EdmModel(DataSpace.CSpace);
model.AddAssociationType(inverseAssociationType);
var inverseNavigationProperty
= model.AddEntityType("T")
.AddNavigationProperty("N", inverseAssociationType);
inverseNavigationProperty.SetClrPropertyInfo(inverseMockPropertyInfo);
navigationPropertyConfiguration.Configure(
new NavigationProperty("N", TypeUsage.Create(associationType.TargetEnd.GetEntityType()))
{
RelationshipType = associationType
}, model, new EntityTypeConfiguration(typeof(object)));
Assert.Same(associationType, inverseNavigationProperty.Association);
Assert.Same(associationType.SourceEnd, inverseNavigationProperty.ResultEnd);
Assert.Same(associationType.TargetEnd, inverseNavigationProperty.FromEndMember);
Assert.Equal(0, model.AssociationTypes.Count());
}
示例12: Configure_should_validate_consistency_of_mapping_when_already_configured
public void Configure_should_validate_consistency_of_mapping_when_already_configured()
{
var associationType = new EdmAssociationType().Initialize();
var manyToManyAssociationMappingConfiguration1 = new ManyToManyAssociationMappingConfiguration();
manyToManyAssociationMappingConfiguration1.ToTable("A");
var navigationPropertyConfigurationA
= new NavigationPropertyConfiguration(new MockPropertyInfo())
{
AssociationMappingConfiguration = manyToManyAssociationMappingConfiguration1
};
associationType.SetConfiguration(navigationPropertyConfigurationA);
var manyToManyAssociationMappingConfiguration2 = new ManyToManyAssociationMappingConfiguration();
manyToManyAssociationMappingConfiguration1.ToTable("B");
var navigationPropertyConfigurationB
= new NavigationPropertyConfiguration(new MockPropertyInfo())
{
AssociationMappingConfiguration = manyToManyAssociationMappingConfiguration2
};
Assert.Equal(Strings.ConflictingMapping("P", typeof(object)), Assert.Throws<InvalidOperationException>(() => navigationPropertyConfigurationB.Configure(
new EdmNavigationProperty { Association = associationType },
new EdmModel(), new EntityTypeConfiguration(typeof(object)))).Message);
}
示例13: Configure_should_validate_consistency_of_mapping_when_already_configured
public void Configure_should_validate_consistency_of_mapping_when_already_configured()
{
var associationType = new AssociationType("A", XmlConstants.ModelNamespace_3, false, DataSpace.CSpace);
associationType.SourceEnd = new AssociationEndMember("S", new EntityType("E", "N", DataSpace.CSpace));
associationType.TargetEnd = new AssociationEndMember("T", new EntityType("E", "N", DataSpace.CSpace));
var manyToManyAssociationMappingConfiguration1 = new ManyToManyAssociationMappingConfiguration();
manyToManyAssociationMappingConfiguration1.ToTable("A");
var navigationPropertyConfigurationA
= new NavigationPropertyConfiguration(new MockPropertyInfo(typeof(AType1), "N1"))
{
AssociationMappingConfiguration = manyToManyAssociationMappingConfiguration1
};
associationType.SetConfiguration(navigationPropertyConfigurationA);
var manyToManyAssociationMappingConfiguration2 = new ManyToManyAssociationMappingConfiguration();
manyToManyAssociationMappingConfiguration2.ToTable("B");
var navigationPropertyConfigurationB
= new NavigationPropertyConfiguration(new MockPropertyInfo(typeof(AType1), "N2"))
{
AssociationMappingConfiguration = manyToManyAssociationMappingConfiguration2
};
Assert.Equal(
Strings.ConflictingMapping("N2", typeof(object)),
Assert.Throws<InvalidOperationException>(
() => navigationPropertyConfigurationB.Configure(
new NavigationProperty("N", TypeUsage.Create(associationType.TargetEnd.GetEntityType()))
{
RelationshipType = associationType
},
new EdmModel(DataSpace.CSpace), new EntityTypeConfiguration(typeof(object)))).Message);
}
示例14: Configure_should_validate_consistency_of_inverse_end_kind_when_already_configured
public void Configure_should_validate_consistency_of_inverse_end_kind_when_already_configured()
{
var associationType = new AssociationType("A", XmlConstants.ModelNamespace_3, false, DataSpace.CSpace);
associationType.SourceEnd = new AssociationEndMember("S", new EntityType("E", "N", DataSpace.CSpace));
associationType.TargetEnd = new AssociationEndMember("T", new EntityType("E", "N", DataSpace.CSpace));
var mockPropertyInfo = new MockPropertyInfo();
var navigationPropertyConfigurationA
= new NavigationPropertyConfiguration(mockPropertyInfo)
{
RelationshipMultiplicity = RelationshipMultiplicity.ZeroOrOne
};
associationType.SetConfiguration(navigationPropertyConfigurationA);
var navigationPropertyConfigurationB
= new NavigationPropertyConfiguration(new MockPropertyInfo())
{
InverseEndKind = RelationshipMultiplicity.Many,
InverseNavigationProperty = mockPropertyInfo
};
Assert.Equal(
Strings.ConflictingMultiplicities("P", typeof(object)),
Assert.Throws<InvalidOperationException>(
() => navigationPropertyConfigurationB.Configure(
new NavigationProperty("N", TypeUsage.Create(associationType.TargetEnd.GetEntityType()))
{
RelationshipType = associationType
},
new EdmModel(DataSpace.CSpace), new EntityTypeConfiguration(typeof(object)))).Message);
}
示例15: Configure_should_not_validate_consistency_of_dependent_end_when_both_false
public void Configure_should_not_validate_consistency_of_dependent_end_when_both_false()
{
var associationType = new EdmAssociationType().Initialize();
var navigationPropertyConfigurationA
= new NavigationPropertyConfiguration(new MockPropertyInfo());
associationType.SetConfiguration(navigationPropertyConfigurationA);
var navigationPropertyConfigurationB
= new NavigationPropertyConfiguration(new MockPropertyInfo());
navigationPropertyConfigurationB.Configure(
new EdmNavigationProperty { Association = associationType },
new EdmModel(), new EntityTypeConfiguration(typeof(object)));
}