在LINQ中進行條件過濾到SQL
需要獲取使用LINQ到SQL符合某些條件的隨機數據庫行? 當特定記錄並不關鍵時,這特別有用,但其相關條件是。 例如,選擇一個隨機活躍的客戶。
最有效的方法涉及數據庫中的“虛擬”用戶定義函數(UDF)。
<code class="language-csharp">partial class MyDataContext { [Function(Name="NEWID", IsComposable=true)] public Guid Random() { throw new NotImplementedException(); } }</code>
>
函數隨機訂購行。 結果是一個隨機行滿足
。<code class="language-csharp">var cust = (from row in ctx.Customers where row.IsActive // Your filter condition orderby ctx.Random() select row).FirstOrDefault();</code>
OrderBy
績效的重要說明:ctx.Random()
>
NEWID()
row.IsActive
此方法是較小至中型表的理想選擇。 對於非常大的桌子,服務器端的開銷可能很重要。 在這種情況下,它更有效地:
檢索特定行。
以上是如何使用LINQ到SQL獲取隨機行會遇到特定條件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!