我正在使用LINQ to SQL來訪問我的數據庫,但我只讀,我從不插入,更新或刪除任何東西。有沒有辦法爲此優化LINQ2SQL?只讀LINQ to SQL
2
A
回答
5
是的。 Linq 2 SQL將默認緩存從數據庫中讀取的所有數據。它需要執行此操作來跟蹤您對對象應用的所有更改,以便在調用SubmitChanges()時生成必需的插入/更新/刪除語句。
如果您只是在讀取數據,則這是不準確的。您可以通過在DataContext上將ObjectTrackingEnabled屬性設置爲false來關閉對象跟蹤。
0
我被告知的一件事是避免使用生成的記錄類。
也就是說,如果你有一個Users
表,L2S會爲你創建一個User
類,這就是它從數據庫返回的內容。你應該創建一個「影子」類---所有相同的屬性,而不是別的,直接將它們複製到這些記錄中供你使用。事實上,如果這將是完全只讀,你可以在構造函數分配他們,只有公共干將:
class myUser
{
public string FName {get; private set}
public string LName {get; private set}
public myUser(User user)
{
this.FName = user.FName;
this.LName = user.LName;
}
}
var users = from u in db.Users
where .....
select new myUsers(u);
這避免了大量的開銷所需的處理寫作對象的可能性再次出來。
相關問題
- 1. 的LINQ to SQL,匿名類型是隻讀的
- 2. LINQ to SQL讀取ID只需插入並回滾
- 3. Linq to SQL Compact - 事務或只是SubmitChanges
- 4. 的LINQ to SQL比較時只
- 5. 使用LINQ to SQL讀取DBML xml
- 6. LINQ to SQL Translation
- 7. LINQ to SQL
- 8. linq to sql「Contains」
- 9. LINQ to SQL LoadWith
- 10. LINQ to SQL context.GetChanges
- 11. LINQ to SQL ASP.net
- 12. Linq To SQL DefaultIfEmpty
- 13. Linq to SQl
- 14. Linq-to-SQL ToDictionary()
- 15. Linq-to-Sql Count
- 16. LINQ to SQL - PredicateBuilder
- 17. Linq to SQL InvalidCastException
- 18. LINQ-to-SQL IN()
- 19. Linq to SQL Impersonation
- 20. SQL to IQueryable LINQ
- 21. LINQ to SQL PredicateBuilder
- 22. Linq to SQL JOIN?
- 23. LINQ to SQL -DAL
- 24. LINQ to SQL Paging
- 25. linq-to-sql InsertOnSubmit
- 26. LINQ to SQL/XML
- 27. Linq to Sql SelectMany
- 28. 的LINQ to SQL
- 29. Linq to SQL比Linq to Entities更快嗎?
- 30. SQL to Linq to Entities轉換