回答
如果你想脫離現有的對象關注@ Slauma的建議。如果要加載的對象,而不跟蹤更改使用:
var data = context.MyEntities.AsNoTracking().Where(...).ToList();
正如在評論這不會完全分離的實體提及。他們仍然附加和懶加載工程,但實體不跟蹤。例如,如果您只想加載實體來讀取數據,並且您不打算修改它們,則應該使用該選項。
這是一個選項:
dbContext.Entry(entity).State = EntityState.Detached;
我可以在檢索返回IQueryable的對象時執行此操作嗎? – 2011-04-08 19:06:49
@Lol編碼器:我不確定我是否理解你,但是'entity'必須是屬於你的模型類(Person,Customer,Order等)的類型的物化對象。您不能直接將IQueryable
解決方案是什麼? 'AsNoTracking()'或'Include()'或'dbContext.Entry(entity).State = EntityState.Detached;' – 2013-02-06 11:14:45
- 1. Code First Entity Framework
- 2. ASP.NET Entity Framework Code First Migrarion
- 3. Code First Entity Framework或NHibernate
- 4. 如何使用Entity Framework Code First 4.1映射小對象圖?
- 5. Entity Framework Code First - Orphaning解決方案?
- 6. orm with entity framework 4 and code first
- 7. Code First Entity Framework:外鍵問題
- 8. 如何使用Entity Framework 6.1.1中的[Index]屬性和Code First
- 9. 如何在'Code First Entity Framework'中避免'discriminator'列
- 10. 如何在Entity Framework Code First中自我引用?
- 11. 子對象是否應該在Entity Framework 4 Code-First中自動更新?
- 12. Entity Framework Code First - 如何在保存時忽略列
- 13. 如何使用Entity Framework Code First將C#int映射到SqlServer tinyint?
- 14. 如何使用Entity Framework 4 Code-First定義數據庫視圖?
- 15. 使用Code First Entity Framework進行單向多對多實現
- 16. Howto配置Code First Entity Framework多對多映射表?
- 17. 如何序列化枚舉作爲Code First Entity Framework的DataContract的一部分
- 18. 我該如何別名由Entity Framework Code First From Database生成的部分類?
- 19. 如何用Entity Framework Code First確定多對多聯結表名稱?
- 20. 我可以在Entity Framework Code First中禁用自動關係嗎?
- 21. 使用Code First和Entity Framework的可爲空的實體字段
- 22. 如何刪除和創建僅在Code First - Entity Framework中更改的表格
- 23. 在Code-First和POCO中使用Entity Framework 4.0:如何獲取所有子項的父對象?
- 24. 使用複合鍵的Code First Entity Framework 6:1到1
- 25. 我如何讓Entity Framework與我分離的對象圖一起工作?
- 26. 您如何在Entity Framework 4 Code-First CTP 5中真正執行關係?
- 27. Code First Entity Framework爲什麼會生成外鍵?
- 28. Code First Entity Framework - 更改連接字符串
- 29. 如何在Code First First Framework 4.3 +中使用ENUMS?
- 30. 如何使用Entity Framework Code First CTP5按年查詢相同的數據庫表?
@Ladislav:這確實可能是Lol編碼器的意思。我從來沒有使用過這種方法,儘管我經常加載對象列表並處理上下文,就像'using(ctx){return ctx .... ToList(); }'。在這種情況下,使用'AsNoTracking()'會很有意義,因爲我會節省不必要的填充對象上下文。我想它可能會有性能和內存消耗的好處,特別是對於大型列表,對吧? – Slauma 2011-04-08 20:23:02
@Slauma:是的,它具有性能優勢。這實際上就是這種方法存在的原因。在ObjectContext API中使用這種方法稍微複雜一些。 – 2011-04-08 21:15:23
這是否禁用延遲加載? – 2011-04-16 03:27:34