我在Linq-to-SQL類上創建了一些額外的功能,以便在開發我的應用程序時使事情變得更加簡單。例如,我定義了一個從合同列表中檢索活動合同的屬性。但是,如果我試圖在lambda表達式中使用此屬性,或者通常在查詢中使用此屬性,它將引發一個異常,即沒有與該屬性匹配的SQL語句,或者它會爲每個項目生成一個查詢(=大量往返於服務器)。在Linq-to-SQL中映射計算的屬性以執行SQL語句
查詢本身並不複雜f.ex:
var activeContracts = customer.Contracts.Where(w => w.ContractEndDate == null);
而我想它是閱讀:
var activeContracts = customer.ActiveContracts;
我這樣做的主要原因是因爲它會降低在我的部分是邏輯錯誤,如果我將來想改變定義活動合同的內容,我不必重做很多代碼。
有沒有一種方法來指定屬性應該生成的SQL。或者有沒有辦法確保它可以在下面的查詢中使用?
var singleContractCustomers = db.Customers.Where(w => w.ActiveContracts.Count() == 1);
什麼是你的財產類型? – 2008-10-10 08:39:54