[英]Is there an overview for Nhibernate in which order you must use extension methods?
是否有概述顯示或解釋必須按什么順序調用Linq方法的概述?
例如,如果首先調用Take(200)
,然后調用OrderBy(..)
,則會出現異常。 但是切換這些呼叫時不會出現異常。
所以我的問題是,有人知道一些解釋它的文檔嗎? 還是知道列出這類信息的地方?
可以調用它們的順序沒有任何限制。在LINQ中調用Take(200)
然后依次調用OrderBy
是完全有效的。 LINQ只是一系列方法。 它沒有描述這些方法的實際實現方式。 一些實際的實現包括Linq-to-objects(有點特殊情況),LINQ-To-SQL,Entity Framework,然后是基於IQueryable
LINQ方法的任何其他查詢提供程序。
一些特定的提供程序可能僅支持LINQ方法的子集,或者可能不支持LINQ可以描述的其他方面。 在這些情況下,它們可能會出錯(或執行其他一些不良行為)。 您將需要查看所使用的任何特定LINQ提供程序的文檔,以了解其支持和不支持的功能。
您不能在調用OrderBy之前調用Take(200)的原因是Take(200)會強制NHibernate LINQ提供程序評估linq查詢。 一旦對查詢進行了評估,就無法在不重新評估查詢的情況下將更多的SQL子句添加到混合中,這可能會帶來意想不到的后果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.