I have . NET 6.0 Web API, and Dapper Set up with DI.
public class DapperContext
{
private readonly IConfiguration _configuration;
private readonly string _connectionString;
public DapperContext(IConfiguration configuration)
{
_configuration = configuration;
_connectionString = _configuration.GetConnectionString("DefaultConnection");
}
public IDbConnection CreateConnection()
=> new SqlConnection(_connectionString);
}
public class ApiUserRepository : IApiUserRepository
{
private readonly DapperContext _context;
public ApiUserRepository(DapperContext context)
{
_context = context;
}
public async Task<ApiUser> GetUser(string name)
{
//using (var context = new PrincipalContext(ContextType.Domain, "elegrity.com"))
using (var context = new PrincipalContext(ContextType.Domain, _domain.GetDomainNameFromConfiguration()))
{
var userIdentity = UserPrincipal.FindByIdentity(context, name);
if (userIdentity != null)
{
var query = "SELECT UserID, FirstName + ', ' + LastName as [Name], RoleID FROM EIFUser WHERE EmailAddress = @EmailAddress";
var connection = _context.CreateConnection();
var apiUser = await connection.QuerySingleOrDefaultAsync<ApiUser>(query, new { userIdentity.EmailAddress });
return apiUser;
}
}
}
}
I am getting the following error message, using Microsoft.Data.SqlClient library
ServerVersion = '((Microsoft.Data.SqlClient.SqlConnection)connection).ServerVersion' threw an exception of type 'System.InvalidOperationException'
ConnectionString in appSettings.json looks like,
"ConnectionStrings": {
"DefaultConnection": "Trust Server Certificate=true;packet size=4096;user id=user;password=password;data source=Somedatasource;persist security info=False;initial catalog=MY_DB;Connect Timeout=200;pooling=true;Max Pool Size=750;"
},
