Когда я выполнить следующий OData запрос к моему методу контроллера, определенный в поле ниже примере кода, результирующий запрос в Get() становится нулевой:? http://my.host/api/MyClass/ $ фильтра = Id экв 1 & $ расширить = MySecondClassOdataQueryOptions создает нулевое выражение
Ответ в ODataQueryOptions not being applied предполагает, что это способ сделать это, но он все еще терпит неудачу. Да, у MyClass есть ссылка на MySecondClass. :)
EDIT: после немного большего исследования, кажется, что запрос равен null, только когда я использую $ expand. Используя $ filter, все работает, как и ожидалось. есть ли некоторые ловушки с использованием $ 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();
}