我有2个使用ODataModelBuilder公开为OData的实体(订单和产品)。在Order实体中,有一个Status复杂类型。有没有办法公开状态复杂类型?Web API OData - 使用ODataModelBuilder公开ComplexType
ODataModelBuilder _modelBuilder = new ODataModelBuilder();
var _status = _modelBuilder.ComplexType<Status>();
_status.Property(x => x.Description);
_status.Property(x => x.Name);
_status.Property(x => x.StatusId);
var _order = _orders.EntityType;
_order.HasKey(x => x.OrderId);
_order.Property(x => x.ProductId);
_order.Property(x => x.Quantity);
_order.ComplexProperty(x => x.Status);
var _product = _products.EntityType;
_product.HasKey(x => x.ProductId);
_product.Property(x => x.Name);
_product.Property(x => x.Description);
我想到的另一种方法是将Status转换为EntityType。但是,通过这种方法,我无法在Order实体类型中定义状态ComplexProperty,因此,从订单类型中删除了状态属性。订单实体类型必须具有状态。
有没有人在Web API中使用OData之前发现过这个问题?
您的模型构建代码对我来说看起来很好。您是否说该订单在创建的模型中没有复杂的财产状态? – 2013-03-11 06:39:37
我认为他需要属性的路由约定。 – 2013-03-11 07:47:23
这很好,工作完美。订单具有状态复杂属性。我想要做的是将状态暴露为OData,所以我可以这样做:http:// localhost/OData/Status来查看可用状态列表。 – stack247 2013-03-12 03:55:21