Skip to content

Instantly share code, notes, and snippets.

@efbenson
Created December 11, 2012 15:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save efbenson/4259486 to your computer and use it in GitHub Desktop.
Save efbenson/4259486 to your computer and use it in GitHub Desktop.
Automapper for MongoDB ObjectIds
Mapper.CreateMap<List<ObjectId>, List<string>>().ConvertUsing(o => o.Select(os => os.ToString()).ToList());
Mapper.CreateMap<List<string>, List<ObjectId>>().ConvertUsing(o => o.Select(os => ObjectId.Parse(os)).ToList());
Mapper.CreateMap<ObjectId, string>().ConvertUsing(o => o.ToString());
Mapper.CreateMap<string, ObjectId>().ConvertUsing(s => ObjectId.Parse(s));
@alexander-williamson
Copy link

Hooray! Nice gist!

@MohamedChaabouni
Copy link

MohamedChaabouni commented Jan 23, 2019

Thanks !

@Laoujin
Copy link

Laoujin commented Aug 30, 2020

Newer Automapper versions no longer use the static CreateMap.
The new syntax:

var config = new MapperConfiguration(cfg =>
{
        cfg.CreateMap<List<ObjectId>, List<string>>().ConvertUsing(o => o.Select(os => os.ToString()).ToList());
        cfg.CreateMap<List<string>, List<ObjectId>>().ConvertUsing(o => o.Select(ObjectId.Parse).ToList());
        cfg.CreateMap<ObjectId, string>().ConvertUsing(o => o.ToString());
        cfg.CreateMap<string, ObjectId>().ConvertUsing(ObjectId.Parse);
});
var mapper = config.CreateMapper();

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment