我想从数据库中注入一些电子邮件配置数据到命名的配置类AuthMessageSenderOptions,这个类有以下属性:
public class AuthMessageSenderOptions
{
public int PortNumber { get; set; }
public string SmtpServer { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
为了将配置细节注入appsettings.json到AuthMessageSenderOptions类中,我使用以下代码Startup.cs:
services.Configure<AuthMessageSenderOptions>(Configuration.GetSection("SMTP"));
Run Code Online (Sandbox Code Playgroud)
现在我的问题是:
如何从数据库中读取这些数据而不是appsettings.json将它们注入我的AuthMessageSenderOptions课程以供将来使用?
是否可以Inner Join在FromSql实体框架核心的方法中使用?
我用过,但出现此错误:
SqlException: 为 'c' 多次指定了列 'Id'。
这是我的代码:
return DbContext.Contacts
.FromSql<Contact>("Select * From Contacts Inner Join Phones on Phones.ContactId = Contacts.Id Where Contacts.Id <= 2 And Phones.PhoneNumber='01234567890'")
.Include(o => o.RegisteredByUser)
.AsNoTracking()
.ToListAsync();
Run Code Online (Sandbox Code Playgroud)