我有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