我正在开发一个邮件列表应用程序,我们可以在发送完整列表之前测试测试电子邮件以检查格式和内容。从一个对象投射到另一个对象
我有“活的”列表和“测试”列表设置相同。我正在使用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