本文整理汇总了C#中System.Data.Entity.Core.Metadata.Edm.EdmModel.AddItem方法的典型用法代码示例。如果您正苦于以下问题:C# EdmModel.AddItem方法的具体用法?C# EdmModel.AddItem怎么用?C# EdmModel.AddItem使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Data.Entity.Core.Metadata.Edm.EdmModel
的用法示例。
在下文中一共展示了EdmModel.AddItem方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GlobalItems_should_return_namespace_items_and_containers
public void GlobalItems_should_return_namespace_items_and_containers()
{
var model = new EdmModel(DataSpace.SSpace);
model.AddItem(new EntityType("Entity", "Model", DataSpace.SSpace));
Assert.Equal(2, model.GlobalItems.Count());
}
示例2: Validate_should_throw_on_error
public void Validate_should_throw_on_error()
{
var model = new EdmModel(DataSpace.CSpace);
model.AddItem(new EntityType("E", "N", DataSpace.CSpace));
Assert.Throws<ModelValidationException>(() => model.Validate());
}
示例3: EdmNavigationProperty_BadNavigationPropertyBadFromRoleType
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);
}
示例4: When_store_function_name_has_a_dot
public void When_store_function_name_has_a_dot()
{
var errors = new List<DataModelErrorEventArgs>();
var validator = new DataModelValidator();
validator.OnError += (s, a) => errors.Add(a);
var model = new EdmModel(DataSpace.SSpace);
model.AddItem(new EdmFunction("Has.Dots", "N", DataSpace.SSpace));
validator.Validate(model, validateSyntax: true);
var error = errors.Single();
Assert.Equal("Name", error.PropertyName);
Assert.Equal(Strings.EdmModel_Validator_Syntactic_EdmModel_NameIsNotAllowed("Has.Dots"), error.ErrorMessage);
}
示例5: VisitEdmModel_should_visit_edm_functions
public void VisitEdmModel_should_visit_edm_functions()
{
var visitorMock
= new Mock<EdmModelVisitor>
{
CallBase = true
};
var function = new EdmFunction("F", "N", DataSpace.SSpace);
var model = new EdmModel(DataSpace.SSpace);
model.AddItem(function);
visitorMock.Object.VisitEdmModel(model);
visitorMock.Verify(v => v.VisitFunctions(It.IsAny<IEnumerable<EdmFunction>>()), Times.Once());
visitorMock.Verify(v => v.VisitMetadataItem(function), Times.Once());
visitorMock.Verify(v => v.VisitEdmFunction(function), Times.Once());
}
示例6: Can_add_remove_association_type
public void Can_add_remove_association_type()
{
var model = new EdmModel(DataSpace.SSpace);
var associationType = new AssociationType("A", "N", false, DataSpace.SSpace);
model.AddItem(associationType);
Assert.True(model.AssociationTypes.Contains(associationType));
Assert.True(model.NamespaceItems.Contains(associationType));
model.RemoveItem(associationType);
Assert.False(model.AssociationTypes.Contains(associationType));
Assert.False(model.NamespaceItems.Contains(associationType));
}
示例7: Apply_should_not_discover_when_multiple_associations_exist
public void Apply_should_not_discover_when_multiple_associations_exist()
{
var associationType = CreateAssociationType();
var pkProperty = EdmProperty.CreatePrimitive("Id", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String));
associationType.SourceEnd.GetEntityType().AddKeyMember(pkProperty);
var fkProperty = EdmProperty.CreatePrimitive("FooId", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String));
associationType.TargetEnd.GetEntityType().AddMember(fkProperty);
// Foo.Id == Bar.FooId
associationType.SourceEnd.GetEntityType().Name = "Foo";
var model = new EdmModel(DataSpace.CSpace);
model.AddItem(associationType);
model.AddItem(associationType);
(new TypeNameForeignKeyDiscoveryConvention())
.Apply(associationType, new DbModel(model, null));
Assert.Null(associationType.Constraint);
}
示例8: GetAssociationType_should_return_correct_type
public void GetAssociationType_should_return_correct_type()
{
var model = new EdmModel(DataSpace.CSpace);
var associationType
= new AssociationType("A", XmlConstants.ModelNamespace_3, false, DataSpace.CSpace)
{
SourceEnd = new AssociationEndMember("S", new EntityType("E", "N", DataSpace.CSpace)),
TargetEnd = new AssociationEndMember("T", new EntityType("E", "N", DataSpace.CSpace)),
Name = "Foo"
};
model.AddItem(associationType);
Assert.Same(associationType, model.GetAssociationType("Foo"));
}
示例9: Apply_should_discover_when_multiple_associations_exist
public void Apply_should_discover_when_multiple_associations_exist()
{
var associationType = CreateAssociationType();
var pkProperty = EdmProperty.Primitive("Id", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String));
associationType.SourceEnd.GetEntityType().AddKeyMember(pkProperty);
var fkProperty = EdmProperty.Primitive("NavId", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String));
associationType.TargetEnd.GetEntityType().AddMember(fkProperty);
associationType.TargetEnd.GetEntityType().AddNavigationProperty("Nav", associationType).ToEndMember = associationType.SourceEnd;
// Foo.Id == Bar.NavId
var model = new EdmModel(DataSpace.CSpace);
model.AddItem(associationType);
model.AddItem(associationType);
((IEdmConvention<AssociationType>)new NavigationPropertyNameForeignKeyDiscoveryConvention())
.Apply(associationType, model);
Assert.NotNull(associationType.Constraint);
}
开发者ID:christiandpena,项目名称:entityframework,代码行数:22,代码来源:NavigationPropertyNameForeignKeyDiscoveryConventionTests.cs
示例10: GenerateFunctions_does_not_add_ivalid_functions_to_mapping_context
public void GenerateFunctions_does_not_add_ivalid_functions_to_mapping_context()
{
var returnParameter =
FunctionParameter.Create(
"ReturnType",
PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32),
ParameterMode.ReturnValue);
var storeFunction =
EdmFunction.Create(
"foo",
"bar",
DataSpace.SSpace,
new EdmFunctionPayload { ReturnParameters = new[] { returnParameter } },
null);
var storeModel = new EdmModel(DataSpace.SSpace);
storeModel.AddItem(storeFunction);
var mappingContext = new SimpleMappingContext(new EdmModel(DataSpace.SSpace), true);
Assert.Empty(
CreateOneToOneMappingBuilder()
.GenerateFunctions(
mappingContext,
storeModel,
new UniqueIdentifierService(),
new UniqueIdentifierService()));
Assert.Equal(1, mappingContext.Errors.Count);
Assert.Empty(mappingContext.MappedStoreFunctions());
}
示例11: Can_add_remove_enum_type
public void Can_add_remove_enum_type()
{
var model = new EdmModel(DataSpace.SSpace);
var enumType = new EnumType { DataSpace = DataSpace.SSpace };
model.AddItem(enumType);
Assert.True(model.EnumTypes.Contains(enumType));
Assert.True(model.NamespaceItems.Contains(enumType));
model.RemoveItem(enumType);
Assert.False(model.EnumTypes.Contains(enumType));
Assert.False(model.NamespaceItems.Contains(enumType));
}
示例12: GenerateModel_combines_store_model_and_mapping_errors
public void GenerateModel_combines_store_model_and_mapping_errors()
{
var storeModelError = new EdmSchemaError("storeError", 42, EdmSchemaErrorSeverity.Error);
var errorMetadataProperty =
MetadataProperty.Create(
MetadataItemHelper.SchemaErrorsMetadataPropertyName,
TypeUsage.CreateDefaultTypeUsage(
PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String).GetCollectionType()),
new List<EdmSchemaError> { storeModelError });
var entityType =
EntityType.Create(
"foo", "bar", DataSpace.SSpace, new string[0], new EdmMember[0],
new[] { errorMetadataProperty });
var storeModel = new EdmModel(DataSpace.SSpace);
storeModel.AddItem(entityType);
var mappingContext = new SimpleMappingContext(storeModel, true);
mappingContext.AddMapping(
storeModel.Containers.Single(),
EntityContainer.Create("C", DataSpace.CSpace, null, null, null));
mappingContext.Errors.Add(new EdmSchemaError("mappingError", 911, EdmSchemaErrorSeverity.Warning));
var mockModelGenerator = new Mock<ModelGenerator>(new ModelBuilderSettings(), "storeNamespace");
mockModelGenerator
.Setup(g => g.CreateStoreModel())
.Returns(() => storeModel);
mockModelGenerator
.Setup(g => g.CreateMappingContext(It.IsAny<EdmModel>()))
.Returns(() => mappingContext);
var errors = new List<EdmSchemaError>();
mockModelGenerator.Object.GenerateModel(errors);
Assert.Equal(new[] { storeModelError, mappingContext.Errors.Single() }, errors);
}
示例13: CollectStoreModelErrors_returns_errors_from_function_return_rowtypes
public void CollectStoreModelErrors_returns_errors_from_function_return_rowtypes()
{
var edmSchemaError = new EdmSchemaError("msg", 42, EdmSchemaErrorSeverity.Error);
var errorMetadataProperty =
MetadataProperty.Create(
MetadataItemHelper.SchemaErrorsMetadataPropertyName,
TypeUsage.CreateDefaultTypeUsage(
PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String).GetCollectionType()),
new List<EdmSchemaError> { edmSchemaError });
var rowType = RowType.Create(new EdmProperty[0], new[] { errorMetadataProperty });
var function =
EdmFunction.Create(
"foo",
"bar",
DataSpace.SSpace,
new EdmFunctionPayload
{
ReturnParameters =
new[]
{
FunctionParameter.Create(
"ReturnType",
rowType,
ParameterMode.ReturnValue)
}
},
null);
var model = new EdmModel(DataSpace.SSpace);
model.AddItem(function);
var schemaErrors = ModelGenerator.CollectStoreModelErrors(model);
Assert.NotNull(schemaErrors);
Assert.Equal(1, schemaErrors.Count);
Assert.Same(edmSchemaError, schemaErrors.Single());
}
示例14: CollectStoreModelErrors_returns_errors_on_model_items
public void CollectStoreModelErrors_returns_errors_on_model_items()
{
var edmSchemaError = new EdmSchemaError("msg", 42, EdmSchemaErrorSeverity.Error);
var errorMetadataProperty =
MetadataProperty.Create(
MetadataItemHelper.SchemaErrorsMetadataPropertyName,
TypeUsage.CreateDefaultTypeUsage(
PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String).GetCollectionType()),
new List<EdmSchemaError> { edmSchemaError });
var entityType =
EntityType.Create(
"foo", "bar", DataSpace.SSpace, new string[0], new EdmMember[0],
new[] { errorMetadataProperty });
var model = new EdmModel(DataSpace.SSpace);
model.AddItem(entityType);
var schemaErrors = ModelGenerator.CollectStoreModelErrors(model);
Assert.NotNull(schemaErrors);
Assert.Equal(1, schemaErrors.Count);
Assert.Same(edmSchemaError, schemaErrors.Single());
}
示例15: CollectStoreModelErrors_returns_empty_error_list_for_model_without_errors
public void CollectStoreModelErrors_returns_empty_error_list_for_model_without_errors()
{
var entityType =
EntityType.Create("foo", "bar", DataSpace.SSpace, new string[0], new EdmMember[0], null);
var model = new EdmModel(DataSpace.SSpace);
model.AddItem(entityType);
var schemaErrors = ModelGenerator.CollectStoreModelErrors(model);
Assert.NotNull(schemaErrors);
Assert.Empty(schemaErrors);
}