0
我具有由一個鏈接表連接並暴露於通過的OData /實體框架兩個表:爲什麼ODataQueryOptions不能在1 .. *關係的兩端工作?
- USERS
- 用戶羣組
使用〜/ API /用戶,下面[USER]
API控制器動作返回結果:
public IEnumerable<USER> Get(ODataQueryOptions<USER> options)
{
var unitOfWork = new ATMS.Repository.UnitOfWork(_dbContext);
var users = options.ApplyTo(unitOfWork.Repository<USER>().Queryable
.Include(u => u.USERGROUPS)
.OrderBy(order => order.USERNAME))
.Cast<USER>().ToList();
unitOfWork.Save(); // includes Dispose()
return users;
}
但是,我無法將ODataQueryOptions應用於以下[USERGROUP]
API控制器動作:
public IEnumerable<USERGROUP> Get(ODataQueryOptions<USER> options)
{
var unitOfWork = new ATMS.Repository.UnitOfWork(_dbContext);
var userGroups = options.ApplyTo(unitOfWork.Repository<USERGROUP>().Queryable
.Include(u => u.USERS)
.OrderBy(order => order.GROUPNAME))
.Cast<USERGROUP>().ToList();
unitOfWork.Save(); // includes Dispose()
return userGroups.AsQueryable();
}
當我這樣做,我得到以下錯誤:
Cannot apply ODataQueryOptions of 'DAL.USER' to IQueryable of 'DAL.USERGROUP'.
相反,我不得不省略options.ApplyTo(...)
:
var userGroups = unitOfWork.Repository<USERGROUP>()
.Query()
.Include(u => u.USERS)
.Get()
.OrderBy(order => order.GROUPNAME);
可有人請解釋我爲什麼這是?
謝謝。
太容易了。錯過了。謝謝。 – ElHaix