我正在使用 dapper 扩展并对类映射器有疑问。不幸的是,我的大多数表都需要对它们进行一些映射,例如不同的模式等。
所以我发现我通常会按照以下方式更换 DefaultMapper:
public Hierarchies HierarchyGetByName(string aName)
{
Hierarchies result;
using (SqlConnection cn = GetSqlConnection())
{
cn.Open();
Type currModelMapper = DapperExtensions.DapperExtensions.DefaultMapper;
try
{
DapperExtensions.DapperExtensions.DefaultMapper = typeof(HierarchiesMapper);
IFieldPredicate predicate = Predicates.Field<Hierarchies>(f => f.Name, Operator.Eq, aName);
result = cn.GetList<Hierarchies>(predicate).FirstOrDefault();
}
finally
{
DapperExtensions.DapperExtensions.DefaultMapper = currModelMapper;
}
cn.Close();
}
return result;
}
如果我访问 2 个表,那么我必须这样做两次。
有没有办法一次添加所有映射器类来表示一个集合,并根据正在访问的表选择正确的表?