C# 有多少可以在odata服务中使用嵌套实体类
我正在实施一个类似项目的项目 上面说,您可以从客户端请求嵌套实体:C# 有多少可以在odata服务中使用嵌套实体类,c#,asp.net-web-api,odata,C#,Asp.net Web Api,Odata,我正在实施一个类似项目的项目 上面说,您可以从客户端请求嵌套实体: var query = ctx.ProductFamilies.Where(p => p.ID == 3).SelectMany(p => p.Products); 和服务器端,支持/ProductFamilies(1)/产品: ProductFamiliesController : EntitySetController<ProductFamily, int> { /// <summar
var query = ctx.ProductFamilies.Where(p => p.ID == 3).SelectMany(p => p.Products);
和服务器端,支持/ProductFamilies(1)/产品:
ProductFamiliesController : EntitySetController<ProductFamily, int>
{
/// <summary>
/// Support for /ProductFamilies(1)/Products
/// </summary>
[Queryable]
public IQueryable<Product> GetProducts([FromODataUri] int key)
{
return _db.ProductFamilies.Where(pf => pf.ID == key).SelectMany(pf => pf.Products);
}
}
ProductFamiliesController:EntitySetController
{
///
///对/ProductFamilies(1)/产品的支持
///
[可查询]
公共IQueryable GetProducts([FromODataUri]int-key)
{
返回_db.ProductFamilies.Where(pf=>pf.ID==key)。选择many(pf=>pf.Products);
}
}
如何在服务器端支持/ProductFamilies(1)/Products(1)/BatchNumber?您需要另一个EntitySetController用于产品,并与ProductFamily实体集完全相同,即:
ProductsController : EntitySetController<Product, int>
{
/// <summary>
/// Support for /Products(1)/BatchNumbers
/// </summary>
[Queryable]
public IQueryable<BatchNumber> GetBatchNumberss([FromODataUri] int key)
{
return _db.Products.Where(p => p.ID == key).SelectMany(p => p.BatchNumbers);
}
}
ProductsController:EntitySetController
{
///
///支持/产品(1)/批次号
///
[可查询]
公共IQueryable GetBatchNumberss([FromODataUri]int键)
{
返回_db.Products.Where(p=>p.ID==key);
}
}