2015-06-19 132 views
1

我有2種方式使用由實體框架生成的模型。我無法找到何時使用以及爲何使用。.NET OData Web API

  1. 方法1

    ODataQueryOptions<Key_Result> options (Passed as function argument) 
    
    private ODataQuerySettings settings = new ODataQuerySettings(); 
    
    IQueryable<Key_Result> result; 
          try 
          { 
    
         result = options.ApplyTo(DataAccessFunction.Key(keyIds), settings) as IQueryable<Key_Result>; 
    
          } 
    
  2. 方法2

     IQueryable<Log> result; 
    
         try 
         { 
          result = AccessModel.Log; 
    
         } 
    

到目前爲止,我已經用他們在我的代碼,不知道什麼是正確的或者爲什麼兩者甚至用。我找不到任何材料來幫助我。

此外,我在Odata端點中使用的第一個使用sql中的表值函數創建的端點,而第二個使用的端點使用簡單的表和視圖創建。

但是如果實體框架是一致的,那就沒有關係。我應該可以交替使用這兩種方法。它們可以互換使用嗎?它們有什麼區別使得它們更適合一種情況(表值函數),而不是另一種情況(表,視圖)的首選。

+0

您的問題是什麼? –

+0

@QualityCatalyst plz請參閱編輯。 – Novak007

+0

@QualityCatalyst我們可以互換使用,但爲什麼第一個也被使用,它的作用與第二個不同? – Novak007

回答

0

兩者都可以使用,但都有不同的用途。如果我的設置參數如無效傳播,穩定排序或頁面大小必須設置,我可以使用方法1.

但是,設置頁面大小等也可以在沒有此項的情況下完成。方法2是最簡單的,但不處理任何頁面大小或空傳播等。