本文整理汇总了C#中ODataConventionModelBuilder.AddEntity方法的典型用法代码示例。如果您正苦于以下问题:C# ODataConventionModelBuilder.AddEntity方法的具体用法?C# ODataConventionModelBuilder.AddEntity怎么用?C# ODataConventionModelBuilder.AddEntity使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ODataConventionModelBuilder
的用法示例。
在下文中一共展示了ODataConventionModelBuilder.AddEntity方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Apply_Doesnot_Override_UserConfiguration
public void Apply_Doesnot_Override_UserConfiguration()
{
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
var vehicles = builder.EntitySet<Vehicle>("vehicles");
var car = builder.AddEntity(typeof(Car));
var paintAction = vehicles.EntityType.Action("Paint");
paintAction.HasActionLink(ctxt => new Uri("http://localhost/ActionTestWorks"), followsConventions: false);
ActionLinkGenerationConvention convention = new ActionLinkGenerationConvention();
convention.Apply(paintAction, builder);
IEdmModel model = builder.GetEdmModel();
var vehiclesEdmSet = model.EntityContainers().Single().FindEntitySet("vehicles");
var carEdmType = model.FindDeclaredType("System.Web.Http.OData.Builder.TestModels.Car") as IEdmEntityType;
var paintEdmAction =
model.GetAvailableProcedures(
model.FindDeclaredType("System.Web.Http.OData.Builder.TestModels.Car") as IEdmEntityType).Single()
as IEdmAction;
Assert.NotNull(paintEdmAction);
HttpConfiguration configuration = new HttpConfiguration();
configuration.Routes.MapODataRoute(model);
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "http://localhost");
request.SetConfiguration(configuration);
ActionLinkBuilder actionLinkBuilder = model.GetActionLinkBuilder(paintEdmAction);
var serializerContext = new ODataSerializerContext { Model = model, EntitySet = vehiclesEdmSet, Url = request.GetUrlHelper() };
var entityContext = new EntityInstanceContext(serializerContext, carEdmType.AsReference(), new Car { Model = 2009, Name = "Accord" });
Uri link = actionLinkBuilder.BuildActionLink(entityContext);
Assert.Equal("http://localhost/ActionTestWorks", link.AbsoluteUri);
}
示例2: DiscoverInheritanceRelationships_PatchesBaseType
public void DiscoverInheritanceRelationships_PatchesBaseType()
{
var mockType1 = new MockType("Foo");
var mockType2 = new MockType("Bar").BaseType(mockType1);
var mockAssembly = new MockAssembly(mockType1, mockType2);
HttpConfiguration configuration = new HttpConfiguration();
configuration.Services.Replace(typeof(IAssembliesResolver), new TestAssemblyResolver(mockAssembly));
var builder = new ODataConventionModelBuilder(configuration);
var entity1 = builder.AddEntity(mockType1);
var entity2 = builder.AddEntity(mockType2);
builder.DiscoverInheritanceRelationships();
Assert.Equal(entity1, entity2.BaseType);
}
示例3: EntityKeyConvention_DoesnotFigureOutKeyPropertyOnDerivedTypes
public void EntityKeyConvention_DoesnotFigureOutKeyPropertyOnDerivedTypes()
{
MockType baseType =
new MockType("BaseType")
.Property<uint>("ID");
MockType derivedType =
new MockType("DerivedType")
.Property<int>("DerivedTypeID")
.BaseType(baseType);
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.AddEntity(derivedType).DerivesFrom(builder.AddEntity(baseType));
IEdmModel model = builder.GetEdmModel();
IEdmEntityType baseEntity = model.AssertHasEntityType(baseType);
baseEntity.AssertHasKey(model, "ID", EdmPrimitiveTypeKind.Int64);
IEdmEntityType derivedEntity = model.AssertHasEntityType(derivedType);
derivedEntity.AssertHasPrimitiveProperty(model, "DerivedTypeID", EdmPrimitiveTypeKind.Int32, isNullable: false);
}
示例4: EntityKeyConvention_FiguresOutTheKeyProperty
public void EntityKeyConvention_FiguresOutTheKeyProperty()
{
MockType baseType =
new MockType("BaseType")
.Property<uint>("ID");
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.AddEntity(baseType);
IEdmModel model = builder.GetEdmModel();
IEdmEntityType entity = model.AssertHasEntityType(baseType);
entity.AssertHasKey(model, "ID", EdmPrimitiveTypeKind.Int64);
}
示例5: RequiredAttributeEdmPropertyConvention_DoesnotOverwriteExistingConfiguration
public void RequiredAttributeEdmPropertyConvention_DoesnotOverwriteExistingConfiguration()
{
MockType type =
new MockType("Entity")
.Property(typeof(int), "ID")
.Property(typeof(int), "Count", new RequiredAttribute());
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.AddEntity(type).AddProperty(type.GetProperty("Count")).IsOptional();
IEdmModel model = builder.GetEdmModel();
IEdmEntityType entity = model.AssertHasEntityType(type);
entity.AssertHasPrimitiveProperty(model, "Count", EdmPrimitiveTypeKind.Int32, isNullable: true);
}
示例6: RequiredAttributeEdmPropertyConvention_ConfiguresRequiredPropertyAsRequired
public void RequiredAttributeEdmPropertyConvention_ConfiguresRequiredPropertyAsRequired()
{
MockType type =
new MockType("Entity")
.Property(typeof(int), "ID")
.Property(typeof(int?), "Count", new RequiredAttribute());
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.AddEntity(type);
IEdmModel model = builder.GetEdmModel();
IEdmEntityType entity = model.AssertHasEntityType(type);
entity.AssertHasPrimitiveProperty(model, "Count", EdmPrimitiveTypeKind.Int32, isNullable: false);
}
示例7: EntityKeyConvention_DoesnotFigureOutKeyPropertyIfIgnored
public void EntityKeyConvention_DoesnotFigureOutKeyPropertyIfIgnored()
{
MockType baseType =
new MockType("BaseType")
.Property(typeof(int), "ID", new NotMappedAttribute());
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.AddEntity(baseType);
IEdmModel model = builder.GetEdmModel();
IEdmEntityType baseEntity = model.AssertHasEntityType(baseType);
Assert.Empty(baseEntity.Properties());
Assert.Empty(baseEntity.Key());
}
示例8: RequiredAttributeEdmPropertyConvention_ConfiguresRequiredNavigationPropertyAsRequired
public void RequiredAttributeEdmPropertyConvention_ConfiguresRequiredNavigationPropertyAsRequired()
{
MockType anotherType =
new MockType("RelatedEntity")
.Property<int>("ID");
MockType type =
new MockType("Entity")
.Property(typeof(int), "ID")
.Property(anotherType, "RelatedEntity", new RequiredAttribute());
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.AddEntity(type);
IEdmModel model = builder.GetEdmModel();
IEdmEntityType entity = model.AssertHasEntityType(type);
entity.AssertHasNavigationProperty(model, "RelatedEntity", anotherType, isNullable: false, multiplicity: EdmMultiplicity.One);
}
示例9: ConcurrencyCheckAttributeEdmPropertyConvention_DoesnotOverwriteExistingConfiguration
public void ConcurrencyCheckAttributeEdmPropertyConvention_DoesnotOverwriteExistingConfiguration()
{
MockType type =
new MockType("Entity")
.Property(typeof(int), "ID")
.Property(typeof(int), "Count", new ConcurrencyCheckAttribute());
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.AddEntity(type).AddProperty(type.GetProperty("Count")).IsOptional();
IEdmModel model = builder.GetEdmModel();
IEdmEntityType entity = model.AssertHasEntityType(type);
IEdmStructuralProperty property = entity.AssertHasPrimitiveProperty(
model,
"Count",
EdmPrimitiveTypeKind.Int32,
isNullable: true);
Assert.Equal(EdmConcurrencyMode.Fixed, property.ConcurrencyMode);
}
开发者ID:modulexcite,项目名称:aspnetwebstack-1,代码行数:19,代码来源:ConcurrencyCheckAttributeEdmPropertyConventionTest.cs
示例10: ConcurrencyCheckAttributeEdmPropertyConvention_ConfiguresETagPropertyAsETag
public void ConcurrencyCheckAttributeEdmPropertyConvention_ConfiguresETagPropertyAsETag()
{
// Arrange
MockType type = new MockType("Entity")
.Property(typeof(int), "ID")
.Property(typeof(int?), "Count", new ConcurrencyCheckAttribute());
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.AddEntity(type);
// Act
IEdmModel model = builder.GetEdmModel();
// Assert
IEdmEntityType entity = model.AssertHasEntityType(type);
IEdmStructuralProperty property = entity.AssertHasPrimitiveProperty(
model,
"Count",
EdmPrimitiveTypeKind.Int32,
isNullable: true);
Assert.Equal(EdmConcurrencyMode.Fixed, property.ConcurrencyMode);
}
示例11: GenerateSelfLinkWithoutCast_Works
public void GenerateSelfLinkWithoutCast_Works()
{
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
var vehicles = builder.AddEntitySet("cars", builder.AddEntity(typeof(Car)));
IEdmModel model = builder.GetEdmModel();
IEdmEntitySet carsEdmEntitySet = model.EntityContainers().Single().EntitySets().Single();
HttpConfiguration configuration = new HttpConfiguration();
configuration.Routes.MapHttpRoute(ODataRouteNames.GetById, "{controller}({id})");
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "http://localhost");
request.Properties[HttpPropertyKeys.HttpConfigurationKey] = configuration;
request.Properties[HttpPropertyKeys.HttpRouteDataKey] = new HttpRouteData(new HttpRoute());
Uri uri =
SelfLinksGenerationConvention.GenerateSelfLink(
vehicles,
new EntityInstanceContext(model, carsEdmEntitySet, carsEdmEntitySet.ElementType, request.GetUrlHelper(), new Car { Model = 2009, Name = "Accord" }),
includeCast: false);
Assert.Equal("http://localhost/cars(Model=2009,Name='Accord')", uri.AbsoluteUri);
}
示例12: DatabaseGeneratedAttributeEdmPropertyConvention_DoesnotOverwriteExistingConfiguration
public void DatabaseGeneratedAttributeEdmPropertyConvention_DoesnotOverwriteExistingConfiguration()
{
// Arrange
MockType type =
new MockType("Entity")
.Property(typeof(int), "ID")
.Property(typeof(int?), "Count", new DatabaseGeneratedAttribute(DatabaseGeneratedOption.Computed));
// Act
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.AddEntity(type).AddProperty(type.GetProperty("Count")).IsOptional();
IEdmModel model = builder.GetEdmModel();
// Assert
IEdmEntityType entity = model.AssertHasEntityType(type);
IEdmStructuralProperty property = entity.AssertHasPrimitiveProperty(model, "Count",
EdmPrimitiveTypeKind.Int32, isNullable: true);
var idAnnotation = model.GetAnnotationValue<EdmStringConstant>(
property,
StoreGeneratedPatternAnnotation.AnnotationsNamespace,
"StoreGeneratedPattern");
Assert.Null(idAnnotation);
}
示例13: CanBuildModelForAnonymousTypes
public void CanBuildModelForAnonymousTypes()
{
Type entityType = new
{
ID = default(int),
NavigationCollection = new[]
{
new { ID = default(int) }
}
}.GetType();
ODataConventionModelBuilder builder = new ODataConventionModelBuilder(new HttpConfiguration(), isQueryCompositionMode: true);
builder.AddEntitySet("entityset", builder.AddEntity(entityType));
IEdmModel model = builder.GetEdmModel();
IEdmEntityType entity = model.AssertHasEntitySet("entityset", entityType);
entity.AssertHasKey(model, "ID", EdmPrimitiveTypeKind.Int32);
entity.AssertHasNavigationProperty(model, "NavigationCollection", new { ID = default(int) }.GetType(), isNullable: false, multiplicity: EdmMultiplicity.Many);
}
示例14: ModelBuilder_Doesnot_Override_NavigationPropertyConfiguration
public void ModelBuilder_Doesnot_Override_NavigationPropertyConfiguration()
{
MockType type1 =
new MockType("Entity1")
.Property<int>("ID");
MockType type2 =
new MockType("Entity2")
.Property<int>("ID")
.Property(type1, "Relation");
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.AddEntity(type2).AddNavigationProperty(type2.GetProperty("Relation"), EdmMultiplicity.One);
IEdmModel model = builder.GetEdmModel();
IEdmEntityType entity = model.AssertHasEntityType(type2);
entity.AssertHasNavigationProperty(model, "Relation", type1, isNullable: false, multiplicity: EdmMultiplicity.One);
}
示例15: EntityType_Containing_ComplexTypeContainingComplexCollection_Works
public void EntityType_Containing_ComplexTypeContainingComplexCollection_Works()
{
Type complexTypeWithComplexCollection =
new MockType("ComplexType")
.Property<Version[]>("ComplexCollectionProperty");
Type entityType =
new MockType("EntityTypeWithComplexCollection")
.Property<int>("ID")
.Property(complexTypeWithComplexCollection, "ComplexProperty");
var modelBuilder = new ODataConventionModelBuilder();
modelBuilder.AddEntity(entityType);
var model = modelBuilder.GetEdmModel();
IEdmEntityType entityEdmType = model.AssertHasEntityType(entityType);
model.AssertHasComplexType(typeof(Version));
IEdmComplexType edmComplexType = model.AssertHasComplexType(complexTypeWithComplexCollection);
var collectionProperty = edmComplexType.DeclaredProperties.Where(p => p.Name == "ComplexCollectionProperty").SingleOrDefault();
Assert.NotNull(collectionProperty);
Assert.True(collectionProperty.Type.IsCollection());
Assert.Equal(collectionProperty.Type.AsCollection().ElementType().FullName(), "System.Version");
}