我正在開發一個郵件列表應用程序,我們可以在發送完整列表之前測試測試電子郵件以檢查格式和內容。從一個對象投射到另一個對象
我有「活的」列表和「測試」列表設置相同。我正在使用Linq2SQL從SQL Server 2005進行數據訪問。
我的思考過程避免重複的代碼是傳遞一個布爾值來指示測試批次。我現在遇到的問題是如何將我的TestEmailList
對象投射到我的EmailList
對象(它們都被定義爲相同)。
IQueryable<EmailList> emailAddresses = null;
if (!isTestSend)
{
// Commented out to avoid an "oops"
//emailAddresses = emailRepository.GetAllActiveEmailAddresses(mailingList);
}
else
{
emailAddresses = (IQueryable<EmailList>)testEmailRepository.GetAllActiveEmailAddresses(mailingList);
}
當我嘗試上面的代碼時,出現以下錯誤消息。
無法轉換類型的對象 'System.Data.Linq.DataQuery
1[CivicCenterEventEmail.Models.TestEmailList]' to type 'System.Linq.IQueryable
1 [CivicCenterEventEmail.Models.EmailList]'。
此外,如果有更好的方法來做到這一點,請賜教。
你的意思是`在db.TestEmailLists`不是`db.EmailList`根據你的問題 – 2011-01-21 22:17:17