簡體   English   中英

在linq中返回選擇查詢的最佳實踐

[英]Best practice in returning select query in linq

我對這個列表中的內容有點困惑,下面用什么來返回linq中的select。

1.Inumerable 2.List 3.ObjectQuery 4. ConvertLinqtoDataTable

你喜歡哪個?

目前我們在返回記錄時使用了objectquery。

  public ObjectQuery StationSelectByStationId(int stationid)
    {
        var query = from station in _iiqrEntities.Station
                    where station.StationId == stationid
                    select station;

        return query as ObjectQuery;
    }

我將使用您的建議,以便我們將代碼標准化。 請根據我上面的代碼參考您的答案。

在此致謝謝

你應該返回一個IQueryable<T>
這允許消費者在不將您的接口耦合到EF的情況下向SQL查詢添加投影。

您應始終返回限制最少的數據類型。 它允許將來最大的靈活性並減少耦合。

根據你所擁有的架構,如果你想進行LINQ鏈接,這可能是一個IQueryable<T> 或者您可以將強類型對象(如DTO)的集合作為IEnumerable<T>

IEnumerable非常適合處理內存中迭代的序列,但IQueryable允許內存不足的內容,如數據庫或Web服務。

這取決於相關數據的大小以及您將使用它做什么。 IQueryable允許稍后修改查詢,但對於具有復雜查詢的大型數據集,它可能導致性能大幅下降。 在這種情況下,我更喜歡返回列表並避免進一步的麻煩,但如果您選擇堅持使用IQueryable,則必須確保在沒有巨大性能命中的情況下進行評估。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM