我懷疑這只是特定於NHibernate。但我的代碼如下....查詢使用OData和asp.net MVC webapi針對NHibernate數據庫
public class ClientController : ApiController
{
// GET /api/<controller>
public IQueryable<Api.Client> Get()
{
return Repositories.Clients.Query().Select(c => Mapper.Map<Client, Api.Client>(c));
}
我基本上要查詢中使用OData的標準數據庫....獲得相關的「客戶」對象,並把它們轉換成DTO「API。客戶'。
但是...代碼原樣不起作用。因爲NHibernate不知道用Mapper做什麼......它確實希望查詢在.Select之前出現。但我不確定我可以先獲得Odata查詢嗎?
,如果我做
return Repositories.Clients.Query().Select(c => Mapper.Map<Client, Api.Client>(c)).ToList().AsQueryable();
但是,這是一個有點蘇茨基因爲你必須從數據庫上做的OData查詢得到的所有客戶它將工作。
是否有無法讓OData查詢後發生「選擇」?或另一種方法來解決這個問題?
其實我覺得當你想查詢只使用什麼繳費的DTO對象上的問題會更嚴重。你需要查詢通過映射界面,然後返回到數據庫..... – 2012-04-24 05:17:02