2015-06-19 100 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是最简单的,但不处理任何页面大小或空传播等。