Dapper
MySqlConnector
public class Student
{
public int ID { get; set; }
public string Name { get; set; } ;
public string Sex { get; set; } ;
public string Phone { get; set; }
public string Address { get; set; }
}
public interface IStudentQueries
{
Task<List<Student>> GetStudent(int studentId);
}
public class StudentQueries :IStudentQueries
{
private string _connectionString = string.Empty;
public StudentQueries(string constr)
{
_connectionString = !string.IsNullOrWhiteSpace(constr) ? constr : throw new ArgumentNullException(nameof(constr));
}
public async Task<List<Student>> GetStudent(int studentId)
{
using(var dbconnection = new MySqlConnection(_connectionString))
{
dbconnection.Open();
var sb = new StringBuilder();
var sql = "" ;
if (studentId >0)
{
sql = $@" select * from student where id = @studentId";
}
return (await dbconnection.QueryAsync<Student>(sql, new {studentId })).ToList();
}
}
}
public class MediatorModule : Autofac.Module
{
//构造函数,将链接字符串传入
public string QueriesConnectionString { get; }
public MediatorModule(string qconstr)
{
QueriesConnectionString = qconstr;
}
protected override void Load(ContainerBuilder builder)
{
builder.Register(c => new StudentQueries(QueriesConnectionString))
.As<IStudentQueries>()
.InstancePerLifetimeScope();
}
与ConfigureServices同级
public virtual void ConfigureContainer(ContainerBuilder builder)
{
builder.RegisterModule(new MediatorModule(Configuration.GetConnectionString("ConnectionMysql")));
}
allowuservariables=True;允许以参数传入
"ConnectionMysql": "server=localhost;uid=root;pwd=123456;database=studenttest;allowuservariables=True; "
public async Task<List<Student>> GetSqlData(int studentId)
{
return await _productQueries.GetStudent(studentId);
//操纵stream,生成集合
}

