本文整理汇总了C#中ODataConventionModelBuilder.Entity方法的典型用法代码示例。如果您正苦于以下问题:C# ODataConventionModelBuilder.Entity方法的具体用法?C# ODataConventionModelBuilder.Entity怎么用?C# ODataConventionModelBuilder.Entity使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ODataConventionModelBuilder
的用法示例。
在下文中一共展示了ODataConventionModelBuilder.Entity方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GenerateActionLink_GeneratesLinkWithoutCast_IfEntitySetTypeDerivesFromActionEntityType
public void GenerateActionLink_GeneratesLinkWithoutCast_IfEntitySetTypeDerivesFromActionEntityType()
{
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
var cars = builder.EntitySet<Car>("cars");
var paintAction = builder.Entity<Vehicle>().Action("Paint");
IEdmModel model = builder.GetEdmModel();
var carsEdmSet = model.EntityContainers().Single().FindEntitySet("cars");
HttpConfiguration configuration = new HttpConfiguration();
string routeName = "Route";
configuration.Routes.MapODataRoute(routeName, null, model);
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "http://localhost");
request.SetConfiguration(configuration);
request.SetODataRouteName(routeName);
Uri link = ActionLinkGenerationConvention.GenerateActionLink(
new EntityInstanceContext()
{
EdmModel = model,
EntitySet = carsEdmSet,
EntityType = carsEdmSet.ElementType,
Url = request.GetUrlHelper(),
EntityInstance = new Car { Model = 2009, Name = "Accord" }
},
paintAction);
Assert.Equal("http://localhost/cars(Model=2009,Name='Accord')/Paint", link.AbsoluteUri);
}
示例2: GenerateActionLink_GeneratesLinkWithoutCast_IfEntitySetTypeDerivesFromActionEntityType
public void GenerateActionLink_GeneratesLinkWithoutCast_IfEntitySetTypeDerivesFromActionEntityType()
{
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
var cars = builder.EntitySet<Car>("cars");
var paintAction = builder.Entity<Vehicle>().Action("Paint");
IEdmModel model = builder.GetEdmModel();
var carsEdmSet = model.EntityContainers().Single().FindEntitySet("cars");
HttpConfiguration configuration = new HttpConfiguration();
configuration.EnableOData(model);
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "http://localhost");
request.Properties[HttpPropertyKeys.HttpConfigurationKey] = configuration;
request.Properties[HttpPropertyKeys.HttpRouteDataKey] = new HttpRouteData(new HttpRoute());
Uri link = ActionLinkGenerationConvention.GenerateActionLink(
new EntityInstanceContext() {
EdmModel = model,
EntitySet = carsEdmSet,
EntityType = carsEdmSet.ElementType,
UrlHelper = request.GetUrlHelper(),
PathHandler = new DefaultODataPathHandler(model),
EntityInstance = new Car { Model = 2009, Name = "Accord" }
},
paintAction);
Assert.Equal("http://localhost/cars(Model=2009,Name='Accord')/Paint", link.AbsoluteUri);
}
示例3: GenerateActionLink_GeneratesLinkWithCast_IfEntitySetTypeDoesnotMatchActionEntityType
public void GenerateActionLink_GeneratesLinkWithCast_IfEntitySetTypeDoesnotMatchActionEntityType()
{
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
var vehicles = builder.EntitySet<Vehicle>("vehicles");
var car = builder.Entity<Car>();
var paintAction = car.Action("Paint");
IEdmModel model = builder.GetEdmModel();
var vehiclesEdmSet = model.EntityContainers().Single().FindEntitySet("vehicles");
var carEdmType = model.FindDeclaredType("System.Web.Http.OData.Builder.TestModels.Car") as IEdmEntityType;
HttpConfiguration configuration = new HttpConfiguration();
configuration.EnableOData(model);
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "http://localhost");
request.Properties[HttpPropertyKeys.HttpConfigurationKey] = configuration;
request.Properties[HttpPropertyKeys.HttpRouteDataKey] = new HttpRouteData(new HttpRoute());
Uri link = ActionLinkGenerationConvention.GenerateActionLink(
new EntityInstanceContext()
{
EdmModel = model,
EntitySet = vehiclesEdmSet,
EntityType = carEdmType,
UrlHelper = request.GetUrlHelper(),
PathHandler = new DefaultODataPathHandler(model),
EntityInstance = new Car { Model = 2009, Name = "Accord" }
},
paintAction);
Assert.Equal("http://localhost/vehicles(Model=2009,Name='Accord')/System.Web.Http.OData.Builder.TestModels.Car/Paint", link.AbsoluteUri);
}
示例4: GenerateActionLink_GeneratesLinkWithCast_IfEntitySetTypeDoesnotMatchActionEntityType
public void GenerateActionLink_GeneratesLinkWithCast_IfEntitySetTypeDoesnotMatchActionEntityType()
{
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
var vehicles = builder.EntitySet<Vehicle>("vehicles");
var car = builder.Entity<Car>();
var paintAction = car.Action("Paint");
IEdmModel model = builder.GetEdmModel();
var vehiclesEdmSet = model.EntityContainers().Single().FindEntitySet("vehicles");
var carEdmType = model.FindDeclaredType("System.Web.Http.OData.Builder.TestModels.Car") as IEdmEntityType;
HttpConfiguration configuration = new HttpConfiguration();
string routeName = "Route";
configuration.Routes.MapODataRoute(routeName, null, model);
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "http://localhost");
request.SetConfiguration(configuration);
request.SetODataRouteName(routeName);
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 = ActionLinkGenerationConvention.GenerateActionLink(entityContext, paintAction);
Assert.Equal("http://localhost/vehicles(Model=2009,Name='Accord')/System.Web.Http.OData.Builder.TestModels.Car/Paint", link.AbsoluteUri);
}
示例5: GetCustomersModel
private static IEdmModel GetCustomersModel()
{
HttpConfiguration configuration = new HttpConfiguration();
configuration.Services.Replace(typeof(IAssembliesResolver), new TestAssemblyResolver(typeof(QueryCompositionCustomer)));
ODataConventionModelBuilder builder = new ODataConventionModelBuilder(configuration);
builder.EntitySet<QueryCompositionCustomer>("Customer");
builder.Entity<QueryCompositionCustomerBase>();
return builder.GetEdmModel();
}
示例6: GenerateActionLink_GeneratesLinkWithoutCast_IfEntitySetTypeDerivesFromActionEntityType
public void GenerateActionLink_GeneratesLinkWithoutCast_IfEntitySetTypeDerivesFromActionEntityType()
{
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
var cars = builder.EntitySet<Car>("cars");
var paintAction = builder.Entity<Vehicle>().Action("Paint");
IEdmModel model = builder.GetEdmModel();
var carsEdmSet = model.EntityContainers().Single().FindEntitySet("cars");
HttpConfiguration configuration = new HttpConfiguration();
configuration.Routes.MapHttpRoute(ODataRouteNames.InvokeBoundAction, "{controller}({boundId})/{odataAction}");
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "http://localhost");
request.Properties[HttpPropertyKeys.HttpConfigurationKey] = configuration;
request.Properties[HttpPropertyKeys.HttpRouteDataKey] = new HttpRouteData(new HttpRoute());
Uri link = ActionLinkGenerationConvention.GenerateActionLink(
new EntityInstanceContext(model, carsEdmSet, carsEdmSet.ElementType, request.GetUrlHelper(), new Car { Model = 2009, Name = "Accord" }),
paintAction);
Assert.Equal("http://localhost/cars(Model=2009,Name='Accord')/Paint", link.AbsoluteUri);
}
示例7: ModelBuilder_DoesnotPatch_BaseType_IfBaseTypeIsExplicitlySet
public void ModelBuilder_DoesnotPatch_BaseType_IfBaseTypeIsExplicitlySet()
{
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.Entity<Vehicle>();
builder.Entity<Car>().DerivesFromNothing();
builder.Entity<Motorcycle>().DerivesFromNothing();
builder.Entity<SportBike>();
IEdmModel model = builder.GetEdmModel();
Assert.Equal(_totalExpectedSchemaTypesForVehiclesModel, model.SchemaElements.Count());
var vehicle = model.AssertHasEntityType(typeof(Vehicle));
Assert.Equal(null, vehicle.BaseEntityType());
Assert.Equal(2, vehicle.Key().Count());
var motorcycle = model.AssertHasEntityType(typeof(Motorcycle));
Assert.Equal(null, motorcycle.BaseEntityType());
Assert.Equal(2, motorcycle.Key().Count());
Assert.Equal(5, motorcycle.Properties().Count());
var car = model.AssertHasEntityType(typeof(Car));
Assert.Equal(null, car.BaseEntityType());
Assert.Equal(2, car.Key().Count());
Assert.Equal(5, car.Properties().Count());
var sportbike = model.AssertHasEntityType(typeof(SportBike));
Assert.Equal(motorcycle, sportbike.BaseEntityType());
Assert.Equal(2, sportbike.Key().Count());
Assert.Equal(5, sportbike.Properties().Count());
}
示例8: ModelBuilder_Patches_BaseType_IfBaseTypeIsNotExplicitlySet
public void ModelBuilder_Patches_BaseType_IfBaseTypeIsNotExplicitlySet()
{
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.Entity<Vehicle>();
builder.Entity<Car>();
builder.Entity<Motorcycle>();
builder.Entity<SportBike>();
IEdmModel model = builder.GetEdmModel();
Assert.Equal(_totalExpectedSchemaTypesForVehiclesModel, model.SchemaElements.Count());
var vehicle = model.AssertHasEntityType(typeof(Vehicle));
Assert.Equal(null, vehicle.BaseEntityType());
var motorcycle = model.AssertHasEntityType(typeof(Motorcycle));
Assert.Equal(vehicle, motorcycle.BaseEntityType());
var car = model.AssertHasEntityType(typeof(Car));
Assert.Equal(vehicle, car.BaseEntityType());
var sportbike = model.AssertHasEntityType(typeof(SportBike));
Assert.Equal(motorcycle, sportbike.BaseEntityType());
var motorcycleManufacturer = model.AssertHasEntityType(typeof(MotorcycleManufacturer));
Assert.Null(motorcycleManufacturer.BaseEntityType());
var carManufacturer = model.AssertHasEntityType(typeof(CarManufacturer));
Assert.Null(carManufacturer.BaseEntityType());
}
示例9: ModelBuilder_Can_Add_DerivedTypeOfAnIgnoredType
public void ModelBuilder_Can_Add_DerivedTypeOfAnIgnoredType()
{
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<Vehicle>("Vehicles");
builder.Ignore<Motorcycle>();
builder.Entity<SportBike>();
IEdmModel model = builder.GetEdmModel();
Assert.Equal(_totalExpectedSchemaTypesForVehiclesModel - 1, model.SchemaElements.Count());
Assert.Equal(1, model.EntityContainers().Single().EntitySets().Count());
model.AssertHasEntitySet("Vehicles", typeof(Vehicle));
var vehicle = model.AssertHasEntityType(typeof(Vehicle));
Assert.Equal(2, vehicle.Key().Count());
Assert.Equal(3, vehicle.Properties().Count());
vehicle.AssertHasKey(model, "Model", EdmPrimitiveTypeKind.Int32);
vehicle.AssertHasKey(model, "Name", EdmPrimitiveTypeKind.String);
vehicle.AssertHasPrimitiveProperty(model, "WheelCount", EdmPrimitiveTypeKind.Int32, isNullable: false);
var car = model.AssertHasEntityType(typeof(Car));
Assert.Equal(vehicle, car.BaseEntityType());
Assert.Equal(2, car.Key().Count());
Assert.Equal(5, car.Properties().Count());
car.AssertHasPrimitiveProperty(model, "SeatingCapacity", EdmPrimitiveTypeKind.Int32, isNullable: false);
car.AssertHasNavigationProperty(model, "Manufacturer", typeof(CarManufacturer), isNullable: true, multiplicity: EdmMultiplicity.ZeroOrOne);
var sportbike = model.AssertHasEntityType(typeof(SportBike));
Assert.Equal(vehicle, sportbike.BaseEntityType());
Assert.Equal(2, sportbike.Key().Count());
Assert.Equal(5, sportbike.Properties().Count());
sportbike.AssertHasNavigationProperty(model, "Manufacturer", typeof(MotorcycleManufacturer), isNullable: true, multiplicity: EdmMultiplicity.ZeroOrOne);
}
示例10: ModelBuilder_CanAddEntitiesInAnyOrder
public void ModelBuilder_CanAddEntitiesInAnyOrder()
{
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.Entity<SportBike>();
builder.Entity<Car>();
builder.Entity<Vehicle>();
IEdmModel model = builder.GetEdmModel();
Assert.Equal(_totalExpectedSchemaTypesForVehiclesModel, model.SchemaElements.Count());
}
示例11: ModelBuilder_DerivedClassPropertyNotAliased_IfPropertyAddedExplicitly
public void ModelBuilder_DerivedClassPropertyNotAliased_IfPropertyAddedExplicitly()
{
// Arrange
ODataConventionModelBuilder builder = new ODataConventionModelBuilder { ModelAliasingEnabled = true };
EntityTypeConfiguration<PropertyAliasDerived> derived = builder.Entity<PropertyAliasDerived>()
.DerivesFrom<PropertyAlias>();
derived.Property(p => p.LastName).Name = "FamilyName";
derived.Property(p => p.Age).Name = "CurrentAge";
// Act
IEdmModel model = builder.GetEdmModel();
// Assert
IEdmEntityType entityType = model.AssertHasEntityType(typeof(PropertyAliasDerived));
entityType.AssertHasKey(model, "Id", EdmPrimitiveTypeKind.Int32);
entityType.AssertHasPrimitiveProperty(model, "FamilyName", EdmPrimitiveTypeKind.String, true);
entityType.AssertHasPrimitiveProperty(model, "CurrentAge", EdmPrimitiveTypeKind.Int32, false);
}
示例12: ModelBuilder_CanHaveAnAbstractDerivedTypeOfConcreteBaseType
public void ModelBuilder_CanHaveAnAbstractDerivedTypeOfConcreteBaseType()
{
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.Entity<Vehicle>();
builder.Entity<SportBike>().Abstract();
IEdmModel model = builder.GetEdmModel();
Assert.Equal(_totalExpectedSchemaTypesForVehiclesModel, model.SchemaElements.Count());
Assert.False(model.AssertHasEntityType(typeof(Motorcycle)).IsAbstract);
Assert.True(model.AssertHasEntityType(typeof(SportBike)).IsAbstract);
Assert.Equal(model.AssertHasEntityType(typeof(SportBike)).BaseEntityType(), model.AssertHasEntityType(typeof(Motorcycle)));
}
示例13: GetModel
private static IEdmModel GetModel()
{
ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.ContainerName = "Container";
builder.Namespace = "org.odata";
// Action with no overloads
builder.EntitySet<Vehicle>("Vehicles").EntityType.Action("Drive");
// Valid overloads of "Wash" bound to different entities
builder.Entity<Motorcycle>().Action("Wash");
builder.Entity<Car>().Action("Wash");
// Invalid overloads of "Park"
builder.Entity<Car>().Action("Park");
builder.Entity<Car>().Action("Park").Parameter<string>("mood");
return builder.GetEdmModel();
}
示例14: ReadEntry_ThrowsODataException_CannotInstantiateAbstractEntityType
public void ReadEntry_ThrowsODataException_CannotInstantiateAbstractEntityType()
{
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.Entity<BaseType>().Abstract();
IEdmModel model = builder.GetEdmModel();
var deserializer = new ODataEntityDeserializer(_deserializerProvider);
ODataEntryWithNavigationLinks entry = new ODataEntryWithNavigationLinks(new ODataEntry { TypeName = "System.Web.OData.Formatter.Deserialization.BaseType" });
Assert.Throws<ODataException>(
() => deserializer.ReadEntry(entry, _productEdmType, new ODataDeserializerContext { Model = model }),
"An instance of the abstract entity type 'System.Web.OData.Formatter.Deserialization.BaseType' was found. Abstract entity types cannot be instantiated.");
}
示例15: BoundFunction_ForEnumTypeInODataConventionModelBuilder
public void BoundFunction_ForEnumTypeInODataConventionModelBuilder()
{
// Arrange
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
EntityTypeConfiguration<EnumModel> entityTypeConfiguration = builder.Entity<EnumModel>();
FunctionConfiguration functionConfiguration = entityTypeConfiguration.Function("BoundFunction");
functionConfiguration.CollectionParameter<Color?>("Colors");
functionConfiguration.Returns<Color>();
// Act & Assert
IEdmModel model = builder.GetEdmModel();
IEdmFunction function = model.FindDeclaredOperations("Default.BoundFunction").Single() as IEdmFunction;
IEdmTypeReference colors = function.Parameters.Single(p => p.Name == "Colors").Type;
IEdmTypeReference returnType = function.ReturnType;
IEdmEnumType colorType = model.SchemaElements.OfType<IEdmEnumType>().Single(e => e.Name == "Color");
Assert.True(colors.IsCollection());
Assert.True(colors.AsCollection().ElementType().IsNullable);
Assert.Same(colorType, colors.AsCollection().ElementType().Definition);
Assert.Same(colorType, returnType.Definition);
}