本文整理汇总了C#中ODataConventionModelBuilder.AddComplexType方法的典型用法代码示例。如果您正苦于以下问题:C# ODataConventionModelBuilder.AddComplexType方法的具体用法?C# ODataConventionModelBuilder.AddComplexType怎么用?C# ODataConventionModelBuilder.AddComplexType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ODataConventionModelBuilder
的用法示例。
在下文中一共展示了ODataConventionModelBuilder.AddComplexType方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ODataConventionModelBuilder_IgnoresIndexerProperties
public void ODataConventionModelBuilder_IgnoresIndexerProperties()
{
MockType type =
new MockType("ComplexType")
.Property<int>("Item");
MockPropertyInfo pi = type.GetProperty("Item");
pi.Setup(p => p.GetIndexParameters()).Returns(new[] { new Mock<ParameterInfo>().Object }); // make it indexer
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.AddComplexType(type);
IEdmModel model = builder.GetEdmModel();
IEdmComplexType complexType = model.AssertHasComplexType(type);
Assert.Empty(complexType.Properties());
}
示例2: ComplexType_Containing_ComplexCollection_works
public void ComplexType_Containing_ComplexCollection_works()
{
Type complexType =
new MockType("ComplexTypeWithComplexCollection")
.Property<Version[]>("CollectionProperty");
var modelBuilder = new ODataConventionModelBuilder();
modelBuilder.AddComplexType(complexType);
var model = modelBuilder.GetEdmModel();
IEdmComplexType complexEdmType = model.AssertHasComplexType(complexType);
model.AssertHasComplexType(typeof(Version));
var collectionProperty = complexEdmType.DeclaredProperties.Where(p => p.Name == "CollectionProperty").SingleOrDefault();
Assert.NotNull(collectionProperty);
Assert.True(collectionProperty.Type.IsCollection());
Assert.Equal(collectionProperty.Type.AsCollection().ElementType().FullName(), "System.Version");
}
示例3: ModelBuilder_DerivedComplexTypeHavingKeys_SuccedsIfToldToBeComplex
public void ModelBuilder_DerivedComplexTypeHavingKeys_SuccedsIfToldToBeComplex()
{
MockType baseComplexType = new MockType("BaseComplexType");
MockType derivedComplexType =
new MockType("DerivedComplexType")
.Property(typeof(int), "DerivedComplexTypeId")
.BaseType(baseComplexType);
MockType entityType =
new MockType("EntityType")
.Property(typeof(int), "ID")
.Property(baseComplexType.Object, "ComplexProperty");
MockAssembly assembly = new MockAssembly(baseComplexType, derivedComplexType, entityType);
HttpConfiguration configuration = new HttpConfiguration();
configuration.Services.Replace(typeof(IAssembliesResolver), new TestAssemblyResolver(assembly));
var builder = new ODataConventionModelBuilder(configuration);
builder.AddEntitySet("entities", builder.AddEntity(entityType));
builder.AddComplexType(baseComplexType);
IEdmModel model = builder.GetEdmModel();
Assert.Equal(3, model.SchemaElements.Count());
Assert.NotNull(model.FindType("DefaultNamespace.EntityType"));
Assert.NotNull(model.FindType("DefaultNamespace.BaseComplexType"));
}
示例4: ComplexType_Containing_EntityCollection_Throws
public void ComplexType_Containing_EntityCollection_Throws()
{
MockType entityType = new MockType("EntityType");
MockType complexType =
new MockType("ComplexTypeWithEntityCollection")
.Property(entityType.AsCollection(), "CollectionProperty");
var modelBuilder = new ODataConventionModelBuilder();
modelBuilder.AddEntity(entityType);
modelBuilder.AddComplexType(complexType);
Assert.Throws<InvalidOperationException>(
() => modelBuilder.GetEdmModel(),
"The complex type 'DefaultNamespace.ComplexTypeWithEntityCollection' refers to the entity type 'DefaultNamespace.EntityType' through the property 'CollectionProperty'.");
}
示例5: ModelBuilder_SupportsComplexCollectionWhenToldElementTypeIsComplex
public void ModelBuilder_SupportsComplexCollectionWhenToldElementTypeIsComplex(Type complexCollectionPropertyType)
{
var modelBuilder = new ODataConventionModelBuilder();
Type entityType =
new MockType("SampleType")
.Property<int>("ID")
.Property(complexCollectionPropertyType, "Property1");
modelBuilder.AddEntity(entityType);
modelBuilder.AddComplexType(typeof(Version));
IEdmModel model = modelBuilder.GetEdmModel();
IEdmEntityType entity = model.GetEdmType(entityType) as IEdmEntityType;
Assert.NotNull(entity);
Assert.Equal(2, entity.DeclaredProperties.Count());
IEdmStructuralProperty property1 = entity.DeclaredProperties.OfType<IEdmStructuralProperty>().SingleOrDefault(p => p.Name == "Property1");
Assert.NotNull(property1);
Assert.Equal(EdmTypeKind.Collection, property1.Type.Definition.TypeKind);
Assert.Equal(EdmTypeKind.Complex, (property1.Type.Definition as IEdmCollectionType).ElementType.Definition.TypeKind);
}