問候,我有一個以下問題。假設其中有兩個表中的數據庫:加速LinqDataSource
Clients(
id,
name,
address)
Orders(
id,
name,
desc,
datemodified,
client_id)
第二個引用的第一個,即每個訂單分配給客戶端。現在假設我有一個.aspx頁面與的LinqDataSource的訂單表,使用該數據源,並顯示一個表有以下幾列一個GridView:
- 訂單名稱。
- 訂單描述
- 客戶名稱。
- 客戶地址。
據我所知,Linq to SQL的設計方式是,默認情況下它不會加載任何關聯的實體,只有在請求子屬性時纔會這樣做。因此,加載頁面時,會發生以下情況:
- 第一個查詢將從訂單表中檢索記錄。
- 對於由GridView顯示的每一行,當請求一個客戶端屬性時將執行額外的查詢。
因此,如果我們有100個訂單,這意味着將執行101個查詢而不是1個(或者甚至可能201個,如果對每個客戶端屬性執行查詢)?如何避免這種情況,並使LinqDataSource通過單個查詢加載所有必填字段?
現在我看到了這個問題的唯一解決方法 - 使用一個帶連接查詢的SqlDataSource,它將一次檢索所有必填字段。
這是否會影響更新和刪除網格視圖操作?如果我以這種方式切換數據源,LinqDataSource將如何執行更新和刪除請求? –