我正在研究客戶決定使用記錄狀態的系統。其中之一是排除在外的X.我想知道的是,如果有可能運行linq查詢,增加類似是否可以在Linq to SQL中使用自動過濾器?
where status != 'X'
自動不顯示「排除」記錄。謝謝 !
我正在研究客戶決定使用記錄狀態的系統。其中之一是排除在外的X.我想知道的是,如果有可能運行linq查詢,增加類似是否可以在Linq to SQL中使用自動過濾器?
where status != 'X'
自動不顯示「排除」記錄。謝謝 !
排序Linq中的查詢是懶惰評估的,因此您可以在實際獲取第一個結果之前向它們添加條件,並且仍會導致使用「最佳」SQL。
例如:
// an extension method on the LINQ context:
public static IQueryable<Story> FilteredStories(this DbContext db)
{
return from story in db.Stories where status != "X" select story;
}
// ...later...
var stories = from story in db.FilteredStories()
where title = "Something"
select story;
foreach(var story in stories)
{
// whatever...
}
你也可以「隱藏」的基本LINQ上下文和總是通過追加status != "X"
條件的包裝類。當然,那麼問題是,那麼你不得不跳過如果你沒有想要一個過濾列表...
你可能會在之後是Dynamic LINQ。這是一個幫助程序庫,可以用來從字符串中分析LINQ表達式。
我不明白這是如何相關的,這是非常簡單的使用Where操作符。 – 2010-09-21 00:49:55
我認爲這個問題更多的是要求如何使用LINQ where子句,錯誤地認爲:)。如果OP的客戶想要開始定義更多規則,包括以A,B或C等開頭,那麼動態LINQ將變得有用。 – sipwiz 2010-09-21 01:13:17
LINQ是如此容易,寫的問題實際上給你的答案!
where status != "X"
我更傾向於將
.Where(record => record.status != "X")
這不完全是一回事。你錯過的唯一的東西是雙引號,因爲它是一個字符串,而不是字符。
你可能想要在擴展方法上使用公共靜態 – 2010-09-21 00:48:04
@Matt:對,謝謝。 – 2010-09-21 02:17:22