考虑以下代码片段:
var employeeDetails = db.Employees.Where(a => a.Username == username).Select(b => b).FirstOrDefault();
var emailTemp = new EmailTemplate
{
EmailTo = employeeDetails.Email,
Subject = somesubject,
EmailFrom = "from@mydomain.com",
EmailDelivered = "No",
EmailPriority = "Normal",
EmailReference = formId
EmailTemplateId = 1
};
employeeDetails
是一个简单的linq查询,它返回employees表中的用户记录。我想要实现的目标是将其发送给两个用户。第一个应该发送给提交表单的人,另一个发送给他们的经理。唯一更改的属性是EmailTemplateId
,从1到2。
1 =用户
2 =经理
我似乎无法弄清楚如何去做。我的员工表中有经理列。
如果有人可以为我阐明这一点,我将不胜感激。
答案 0 :(得分:2)
List<EmailTemplate> emailTemps = new List<EmailTemplate>();
emailTemps.AddRange( db.Employees.Where(a => a.Username == username).Select(b => new EmailTemplate{
EmailTo = b.employeeDetails.Email,
Subject = b.somesubject,
EmailFrom = "from@mydomain.com",
EmailDelivered = "No",
EmailPriority = "Normal",
EmailReference = b.formId
EmailTemplateId = 1
}).ToArray());
emailTemps.AddRange(emailTemps.Select(e=> new EmailTemplate{
EmailTo = ManagerEmailTo,
Subject = e.Subject,
EmailFrom = e.EmailFrom,
EmailDelivered = e.EmailDelivered,
EmailPriority = e.EmailPriority,
EmailReference = e.EmailReference
EmailTemplateId = 2
});
现在emailTemps
包含两个列表。
答案 1 :(得分:0)
var emails = new List<EmailTemplate>();
var employeeDetails = db.Employees.Where(a => a.Username == username).Select(b => b).FirstOrDefault();
var menagerDetails = employeeDetails.Manager;
emails.Add(new EmailTemplate
{
EmailTo = employeeDetails.Email,
Subject = somesubject,
EmailFrom = "from@mydomain.com",
EmailDelivered = "No",
EmailPriority = "Normal",
EmailReference = formId
EmailTemplateId = 1
});
emails.Add(new EmailTemplate
{
EmailTo = menagerDetails.Email,
Subject = somesubject,
EmailFrom = "from@mydomain.com",
EmailDelivered = "No",
EmailPriority = "Normal",
EmailReference = formId
EmailTemplateId = 2
});
电子邮件包含两个具有不同数据的模板 - 适用于员工及其经理。