0
上篩選的索引我有這樣的EF查詢:(只保留必要的一部分)實體框架查詢失蹤的SQL Server 2012
int maxRetryCount = 5;
var erroredArchiveFilesQuery =
transitionLogSessionContext.Set<ArchivedFile>().Where(f =>
f.RetryCount < maxRetryCount
).Take(maxBatchSize);
它錯過可用過濾索引。
除去可變maxRetryCount
當這樣
var erroredArchiveFilesQuery =
transitionLogSessionContext.Set<ArchivedFile>().Where(f =>
f.RetryCount < 5 &&
).Take(maxBatchSize);
將使用篩選索引鑑於。
從第一EF查詢的實際SQL ...
SELECT TOP (500)
[Extent1].[Id] AS [Id],
..
FROM
[ArchivedFile] AS [Extent1]
WHERE
([Extent1].[RetryCount] < @p__linq__0)
過濾索引包含列RetryCount
和過濾器「RetryCount重< 5」
我怎樣才能使一個EF查詢與變量會擊中篩選索引?
我假設問題出在EF語句正在準備中,因此可以重複使用,這會使SQL Server混淆不清。
你應該澄清你的代碼。你的代碼無效(不編譯)。另外請確保您將所有代碼部分標記爲代碼。 – Mat
我有問題得到中間代碼部分顯示爲代碼,但重寫它有幫助。我不打算讓代碼能夠編譯,但希望所有的基本部分都在那裏。如果問題現在沒有意義,請讓我知道我應該在哪裏清理。謝謝 –
。這裏(f => f.RetryCount <5 &&) 這段代碼應該做什麼? – Mat