我有一个MVC项目,我使用AutoMapper将我的实体框架实体映射到View Models。定义映射的代码位于boostrapper类中,该类在应用程序启动时自动调用(App_Start,Global.asax)
我正在对我的代码进行一些重构,将我的所有业务逻辑放在服务层中,因为我们需要实现一个每天运行的批处理流程,它与MVC应用程序执行一些相同的逻辑。
我遇到的一个问题是现在我需要将我的数据库实体映射到服务层中的某些域对象。我认为一切都可以在MVC应用程序中正常工作,因为引导程序仍然在Global.asax中被调用。
有没有办法可以让我的映射代码适用于我的MVC应用程序和另一个非MVC应用程序(可能是WCF服务,控制台应用程序等)我在哪里可以放置这个映射代码以便调用它两个应用程序只有一次?
答案 0 :(得分:2)
这是静态类,可用于WCF服务初始化:
public static class ServiceConfigurations
{
private static bool mappingConfigured = false;
public static void ConfigureMapping()
{
if (mappingConfigured)
{
return;
}
Mapper.CreateMap<Model1, Model2>();
mappingConfigured = true;
}
public static void CleanupMapping()
{
Mapper.Reset();
mappingConfigured = false;
}
}
答案 1 :(得分:0)
为什么不将global.asax文件添加到服务项目中?
将你的映射扔进一个新项目,参考两者,你就完成了。