好吧,對於一個基本的例子說,我有一個應用程序的開支,我的SQL數據庫中的每個開支都有一個Id,Employee Id和Amount。我應該這樣做:將複雜對象作爲類成員處理的最佳做法是什麼?
public class Expense
{
public int Id { get; set; }
public Employee Employee { get; set; }
public decimal Amount { get; set; }
}
或本:
public class Expense
{
public int Id { get; set; }
public int EmployeeId { get; set; }
public decimal Amount { get; set; }
}
你看,我通常會做的第一,當我從數據庫中獲取的費用我會通過調用像一個構造函數中設置僱員場:Employee = new Employee(int id)
然後,這將再次訪問數據庫以完成Employee對象中的成員。這很方便,因爲現在我可以通過費用訪問員工成員/職能.. I.E.如果我綁定爲一個ObjectDataSource,我可以顯示類似Eval("Employee.Name")
的東西,並顯示更友好的東西,然後只是一個數字,因爲它存儲在數據庫中。
但是,我正在處理的當前項目可能會運行數千行的數十行,並且如果我要獲取第一個費用詳細信息,然後獲取每個對象的員工詳細信息,那麼數據庫請求的數量就會飛速增長。 (事實上我目前的項目有一個6-7外鍵的表)。
有沒有辦法讓我的蛋糕吃呢?
也許通過只有Id字段的接口類而不是完整的對象字段?但我覺得我從來沒有完全理解接口,所以我不確定這是否會有所作爲。
感謝任何讀過這些的人,即使您對我沒有任何答案。
看起來像使用LazyLoading的對象關係框架非常接近'兩全其美'。 – 2013-05-08 17:46:48