簡體   English   中英

是否有Nhibernate概述,您必須按什么順序使用擴展方法?

[英]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.

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