我想使用原始sql查询从数据库中获取数据并将其存储在字符串中,以便我可以在以后或在控制器中多次使用它。
我这样做的方式,
spread()
给出了以下错误消息:
错误1最佳重载方法匹配 'System.Net.Mail.MailAddressCollection.Add(string)'有一些无效 参数
请帮忙。
提前致谢
答案 0 :(得分:1)
您的错误消息是不言自明的! ExecuteSqlCommand
方法返回int
值。因此data
变量的类型为int
。您正尝试将该int变量传递给期望string
值的Add
method。
如果您尝试从邮件表中获取电子邮件列值,则应考虑使用SqlQuery
方法。
var data = db.Database.SqlQuery<string>(@"select email from mail").ToList();
此代码执行sql select email from mail
并返回字符串列表(SQL结果集中每封电子邮件的一个字符串)。这意味着变量data
的类型为List<string>
。您可以遍历该集合并将每封电子邮件(string
类型)添加到Add
方法
foreach (var email in data)
{
mail.To.Add(email);
}