本文整理汇总了C#中System.Data.Entity.Core.Metadata.Edm.EdmModel.AddAssociationSet方法的典型用法代码示例。如果您正苦于以下问题:C# EdmModel.AddAssociationSet方法的具体用法?C# EdmModel.AddAssociationSet怎么用?C# EdmModel.AddAssociationSet使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Data.Entity.Core.Metadata.Edm.EdmModel
的用法示例。
在下文中一共展示了EdmModel.AddAssociationSet方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Generate_can_map_independent_association_type
public void Generate_can_map_independent_association_type()
{
var model = new EdmModel(DataSpace.CSpace);
var principalEntityType = model.AddEntityType("P");
var type = typeof(object);
principalEntityType.GetMetadataProperties().SetClrType(type);
var property = EdmProperty.CreatePrimitive("Id1", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String));
principalEntityType.AddMember(property);
var idProperty1 = property;
principalEntityType.AddKeyMember(idProperty1);
var property1 = EdmProperty.CreatePrimitive("Id2", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String));
principalEntityType.AddMember(property1);
var idProperty2 = property1;
principalEntityType.AddKeyMember(idProperty2);
var dependentEntityType = model.AddEntityType("D");
var type1 = typeof(string);
dependentEntityType.GetMetadataProperties().SetClrType(type1);
model.AddEntitySet("PSet", principalEntityType);
model.AddEntitySet("DSet", dependentEntityType);
var associationType
= model.AddAssociationType(
"P_D",
principalEntityType, RelationshipMultiplicity.One,
dependentEntityType, RelationshipMultiplicity.Many);
model.AddAssociationSet("P_DSet", associationType);
associationType.SourceEnd.DeleteBehavior = OperationAction.Cascade;
var databaseMapping = CreateDatabaseMappingGenerator().Generate(model);
var foreignKeyConstraint
=
databaseMapping.GetEntityTypeMapping(dependentEntityType).MappingFragments.Single().Table.ForeignKeyBuilders.Single();
Assert.Equal(2, foreignKeyConstraint.DependentColumns.Count());
Assert.Equal(associationType.Name, foreignKeyConstraint.Name);
Assert.Equal(1, databaseMapping.EntityContainerMappings.Single().AssociationSetMappings.Count());
Assert.Equal(OperationAction.Cascade, foreignKeyConstraint.DeleteAction);
var foreignKeyColumn = foreignKeyConstraint.DependentColumns.First();
Assert.False(foreignKeyColumn.Nullable);
Assert.Equal("P_Id1", foreignKeyColumn.Name);
}
示例2: Generate_should_not_generate_modification_function_mappings_when_ends_not_mapped_to_functions
public void Generate_should_not_generate_modification_function_mappings_when_ends_not_mapped_to_functions()
{
var model = new EdmModel(DataSpace.CSpace);
var entityType1 = model.AddEntityType("E1");
entityType1.GetMetadataProperties().SetClrType(typeof(string));
model.AddEntitySet("E1Set", entityType1);
var entityType2 = model.AddEntityType("E2");
entityType2.GetMetadataProperties().SetClrType(typeof(string));
model.AddEntitySet("E2Set", entityType2);
var entityTypeConfiguration = new EntityTypeConfiguration(typeof(object));
entityType1.SetConfiguration(entityTypeConfiguration);
entityType2.SetConfiguration(entityTypeConfiguration);
model.AddAssociationSet(
"M2MSet",
model.AddAssociationType(
"M2M",
entityType1,
RelationshipMultiplicity.Many,
entityType2,
RelationshipMultiplicity.Many));
var databaseMapping
= CreateDatabaseMappingGenerator().Generate(model);
Assert.Equal(0, databaseMapping.Database.Functions.Count());
}
示例3: RemoveAssociationType_should_remove_type_and_set
public void RemoveAssociationType_should_remove_type_and_set()
{
var model = new EdmModel(DataSpace.CSpace);
var sourceEntityType = new EntityType("E", "N", DataSpace.CSpace);
var targetEntityType = new EntityType("E", "N", DataSpace.CSpace);
model.AddEntitySet("S", sourceEntityType);
model.AddEntitySet("T", targetEntityType);
var associationType
= model.AddAssociationType(
"A",
sourceEntityType, RelationshipMultiplicity.ZeroOrOne,
targetEntityType, RelationshipMultiplicity.Many);
model.AddAssociationSet("FooSet", associationType);
model.RemoveAssociationType(associationType);
Assert.Equal(0, model.AssociationTypes.Count());
Assert.Equal(0, model.Containers.First().AssociationSets.Count());
}
示例4: AddAssociationSet_should_create_and_add_to_default_container
public void AddAssociationSet_should_create_and_add_to_default_container()
{
var model = new EdmModel(DataSpace.CSpace);
var sourceEntityType = model.AddEntityType("Source");
var targetEntityType = model.AddEntityType("Target");
model.AddEntitySet("S", sourceEntityType);
model.AddEntitySet("T", targetEntityType);
var associationType = model.AddAssociationType(
"Foo",
sourceEntityType, RelationshipMultiplicity.One,
targetEntityType, RelationshipMultiplicity.Many);
var associationSet = model.AddAssociationSet("FooSet", associationType);
Assert.NotNull(associationSet);
Assert.Equal("FooSet", associationSet.Name);
Assert.Same(associationType, associationSet.ElementType);
Assert.True(model.Containers.Single().AssociationSets.Contains(associationSet));
}
示例5: AddAssociationSet_should_create_and_add_to_default_container_explicit_overload
public void AddAssociationSet_should_create_and_add_to_default_container_explicit_overload()
{
var model = new EdmModel(DataSpace.CSpace);
var associationSet = new AssociationSet("AS", new AssociationType("A", XmlConstants.ModelNamespace_3, false, DataSpace.CSpace));
model.AddAssociationSet(associationSet);
Assert.True(model.Containers.Single().AssociationSets.Contains(associationSet));
}
示例6: GetAssociationSet_should_return_association_set
public void GetAssociationSet_should_return_association_set()
{
var model = new EdmModel(DataSpace.CSpace);
var entityType = model.AddEntityType("Foo");
model.AddEntitySet("FooESet", entityType);
var associationType
= new AssociationType("A", XmlConstants.ModelNamespace_3, false, DataSpace.CSpace)
{
SourceEnd = new AssociationEndMember("S", entityType),
TargetEnd = new AssociationEndMember("T", entityType)
};
model.AddAssociationSet("FooSet", associationType);
var associationSet = model.GetAssociationSet(associationType);
Assert.NotNull(associationSet);
Assert.Same(associationType, associationSet.ElementType);
}
示例7: Configure_should_uniquify_unconfigured_association_function_names
public void Configure_should_uniquify_unconfigured_association_function_names()
{
var mockPropertyInfo = typeof(BType1).GetDeclaredProperty("As");
var modelConfiguration = new ModelConfiguration();
var navigationPropertyConfiguration
= modelConfiguration.Entity(typeof(BType1)).Navigation(mockPropertyInfo);
navigationPropertyConfiguration.ModificationStoredProceduresConfiguration
= new ModificationStoredProceduresConfiguration();
var modificationFunctionConfiguration = new ModificationStoredProcedureConfiguration();
modificationFunctionConfiguration.HasName("AB_Delete");
navigationPropertyConfiguration.ModificationStoredProceduresConfiguration
.Insert(modificationFunctionConfiguration);
var model = new EdmModel(DataSpace.CSpace);
var entityA = model.AddEntityType("A");
entityA.GetMetadataProperties().SetClrType(typeof(AType1));
entityA.SetConfiguration(modelConfiguration.Entity(typeof(AType1)));
var entityB = model.AddEntityType("B");
entityB.GetMetadataProperties().SetClrType(typeof(BType1));
entityB.SetConfiguration(modelConfiguration.Entity(typeof(BType1)));
model.AddEntitySet("AS", entityA);
model.AddEntitySet("BS", entityB);
var associationType
= model.AddAssociationType(
"M2M",
entityA,
RelationshipMultiplicity.Many,
entityB,
RelationshipMultiplicity.Many);
associationType.SetConfiguration(navigationPropertyConfiguration);
var navigationProperty
= entityB.AddNavigationProperty("As", associationType);
navigationProperty.SetClrPropertyInfo(mockPropertyInfo);
model.AddAssociationSet("M2MSet", associationType);
var databaseMapping
= new DatabaseMappingGenerator(ProviderRegistry.Sql2008_ProviderInfo, ProviderRegistry.Sql2008_ProviderManifest)
.Generate(model);
modelConfiguration.Configure(databaseMapping, ProviderRegistry.Sql2008_ProviderManifest);
Assert.True(databaseMapping.Database.Functions.Any(f => f.StoreFunctionNameAttribute == "AB_Delete"));
Assert.True(databaseMapping.Database.Functions.Any(f => f.StoreFunctionNameAttribute == "AB_Delete1"));
}
示例8: Configure_should_uniquify_unconfigured_assocation_function_names
public void Configure_should_uniquify_unconfigured_assocation_function_names()
{
var typeA = new MockType("A");
var typeB = new MockType("B").Property(typeA.AsCollection(), "As");
var mockPropertyInfo = typeB.GetProperty("As");
typeA.Property(typeB.AsCollection(), "Bs");
var modelConfiguration = new ModelConfiguration();
var navigationPropertyConfiguration
= modelConfiguration.Entity(typeB).Navigation(mockPropertyInfo);
navigationPropertyConfiguration.ModificationFunctionsConfiguration
= new ModificationFunctionsConfiguration();
var modificationFunctionConfiguration = new ModificationFunctionConfiguration();
modificationFunctionConfiguration.HasName("M2M_Delete");
navigationPropertyConfiguration.ModificationFunctionsConfiguration
.Insert(modificationFunctionConfiguration);
var model = new EdmModel(DataSpace.CSpace);
var entityA = model.AddEntityType("A");
entityA.Annotations.SetClrType(typeA);
entityA.SetConfiguration(modelConfiguration.Entity(typeA));
var entityB = model.AddEntityType("B");
entityB.Annotations.SetClrType(typeB);
entityB.SetConfiguration(modelConfiguration.Entity(typeB));
model.AddEntitySet("AS", entityA);
model.AddEntitySet("BS", entityB);
var associationType
= model.AddAssociationType(
"M2M",
entityA,
RelationshipMultiplicity.Many,
entityB,
RelationshipMultiplicity.Many);
associationType.SetConfiguration(navigationPropertyConfiguration);
var navigationProperty
= entityB.AddNavigationProperty("As", associationType);
navigationProperty.SetClrPropertyInfo(mockPropertyInfo);
model.AddAssociationSet("M2MSet", associationType);
var databaseMapping
= new DatabaseMappingGenerator(ProviderRegistry.Sql2008_ProviderManifest)
.Generate(model);
modelConfiguration.Configure(databaseMapping, ProviderRegistry.Sql2008_ProviderManifest);
Assert.True(databaseMapping.Database.Functions.Any(f => f.Name == "M2M_Delete"));
Assert.True(databaseMapping.Database.Functions.Any(f => f.Name == "M2M_Delete1"));
}
示例9: CreateModelWithAssociations
private EdmModel CreateModelWithAssociations(params EdmProperty[] foreignKeys)
{
var model = new EdmModel(DataSpace.SSpace);
for (var i = 0; i < foreignKeys.Length; i++)
{
var sourceEntityType = new EntityType("E" + i, "N", DataSpace.SSpace);
var targetEntityType = new EntityType("E" + i, "N", DataSpace.SSpace);
model.AddEntitySet("S" + i, sourceEntityType);
model.AddEntitySet("T" + i, targetEntityType);
var fk = foreignKeys[i];
var associationType = new AssociationType((fk == null ? "IA" : fk.Name) + i, "MN", false, DataSpace.SSpace)
{
SourceEnd = new AssociationEndMember(
"A_Source" + i, sourceEntityType.GetReferenceType(), RelationshipMultiplicity.ZeroOrOne),
TargetEnd = new AssociationEndMember(
"A_Target" + i, targetEntityType.GetReferenceType(), RelationshipMultiplicity.Many)
};
model.AddAssociationType(associationType);
if (fk != null)
{
var constraint = new ReferentialConstraint(
associationType.SourceEnd,
associationType.TargetEnd,
new[] { new EdmProperty("SourceProperty") },
new[] { fk });
associationType.Constraint = constraint;
}
model.AddAssociationSet("Set" + (fk == null ? "IA" : fk.Name) + i, associationType);
}
return model;
}