1
當我運行鍼對我的控制器的方法以下的OData查詢在下面的示例代碼中定義,在獲取()生成的查詢變爲零: http://my.host/api/MyClass/ $濾波器=編號當量1 & $擴大= MySecondClassOdataQueryOptions產生空表達
ODataQueryOptions not being applied的答案表明這是做到這一點的方法,但仍然失敗。是的,MyClass確實有對MySecondClass的引用。 :)
編輯:多一點研究後,似乎查詢爲空,只有當我使用$ expand。使用$ filter,everthing按預期工作。有沒有使用$ expand的陷阱,我不知道?
public MyClass {
public int Id { get; set; }
public int MySecondClassId { get; set; }
public MySecondClass MySecondClass { get; set; }
}
public MySecondClass {
public int Id { get; set; }
}
public MyDbContext : DbContext {
public DbSet<MyClass> MyClasses { get; set; }
}
public IQueryable<MyClassDto> Get(ODataQueryOptions<MyClass> options)
{
var dbContext = new MyDbContext();
IQueryable<MyClass> myClasses = dbContext.MyClasses;
var query = options.ApplyTo(myClasses) as IQueryable<MyClass>; // query is null!
query.ToList().Select(Mapper.Map<MyClass, MyClassDto>).AsQueryable();
}