0
我正在使用精簡擴展並且有一個關於class mapper的問題。不幸的是我的大部分表需要一些映射後,他們如不同的模式等使用短小精悍擴展時添加多個地圖
所以我覺得我通常做了很多換出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表格然後我必須做兩次例如。
有沒有辦法一次添加所有的mapper類來說一個集合,並根據被訪問的表選擇正確的一個?
所以我所有的AutoClassMapper類被發現在同一個集會上逍遙法外?與什麼相同的程序集? –
TheEdge
您調用cn.GetList方法的同一個程序集。如果你只有一個項目/組裝,這不是問題。我提到過,如果您的解決方案中有多個項目。 –
你不必在調用程序集中放置你的地圖。您可以使用:DapperExtensions.SetMappingAssemblies(new [] {typeof(MyCustomClassMapper).Assembly}); –