3 回答

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個贊
參見本頁實(shí)體框架和AsNoTracking
AsNoTracking會做什么
實(shí)體框架公開了許多性能調(diào)整選項(xiàng),以幫助您優(yōu)化應(yīng)用程序的性能。這些調(diào)整選項(xiàng)之一是.AsNoTracking()。通過這種優(yōu)化,您可以告訴您Entity Framework不要跟蹤查詢結(jié)果。這意味著Entity Framework不對查詢返回的實(shí)體執(zhí)行任何其他處理或存儲。但是,這也意味著您必須先將這些實(shí)體重新附加到跟蹤圖上,才能更新它們。
使用AsNoTracking可以顯著提高性能

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個贊
沒有跟蹤LINQ到實(shí)體查詢
當(dāng)您的查詢用于讀取操作時,建議使用AsNoTracking()。在這些情況下,您可以取回您的實(shí)體,但是它們不會被您的上下文跟蹤。這可以確保最少的內(nèi)存使用和最佳性能
優(yōu)點(diǎn)
與常規(guī)LINQ查詢相比,性能得到了提高。
完全物化的對象。
使用編程語言內(nèi)置的語法最簡單地編寫。
缺點(diǎn)
不適合CUD操作。
某些技術(shù)限制,例如:與Entity SQL中的簡單OUTER JOIN語句相比,對OUTER JOIN查詢使用DefaultIfEmpty的模式所導(dǎo)致的查詢更為復(fù)雜。
您仍然不能將LIKE與常規(guī)模式匹配一起使用。
- 3 回答
- 0 關(guān)注
- 1659 瀏覽
添加回答
舉報