0

我們目前在剝開從我們的應用程序功能NHibernate的過程中,由於部分信任的問題。我們正在使用流利的API轉向Entity Framework 5.1RC。NHibernate的查詢等效實體框架查詢

我們已經在我們的資料庫下面的方法,我試圖如果相同的查詢可以使用實體框架編寫找出?我顯然希望它儘可能高效。

public PagedList<Topic> GetRecentTopics(int pageIndex, int pageSize, int amountToTake) 
    { 
     // Get a delayed row count 
     var rowCount = Session.QueryOver<Topic>() 
         .Select(Projections.RowCount()) 
         .Cacheable() 
         .FutureValue<int>(); 

     // Get the topics using an efficient query 
     var results = Session.QueryOver<Topic>()        
         .OrderBy(x => x.CreateDate).Desc 
         .Skip((pageIndex - 1) * pageSize) 
         .Take(pageSize) 
         .Cacheable() 
         .Future<Topic>().ToList(); 

     // We might only want to display the top 100 
     // but there might not be 100 topics 
     var total = rowCount.Value; 
     if (total > amountToTake) 
     { 
      total = amountToTake; 
     } 

     // Return a paged list 
     return new PagedList<Topic>(results, pageIndex, pageSize, total); 
    } 

任何幫助/指針非常感謝。

回答

2

AFAIK EF沒有查詢配料see here。你可以implement it yourself這是棘手的。

另外,您可以獲得NH在中等信任下工作,信息herehere

this link的意見有NHibernate的DLL文件在中等信任(我還沒有testet自己)工作的鏈接。

+0

謝謝,我們已經嘗試了一切,流利的nhibernate不會在中等信任下工作。 – leen3o 2012-07-11 14:15:48

+0

正在從FNH生成xml並將其嵌入爲資源選項?或者序列化配置對象並使用它? – Firo 2012-07-12 06:27:53

+0

感謝您回來,我們花了好幾天的時間嘗試各種配置,而只是將其翻出來,現在使用EF。 – leen3o 2012-07-12 18:34:02