Это не AutoMapper, не позволяющий это, это Entity Framework.AutoMapper просто берет вашу конфигурацию сопоставления и создает выражение Select
LINQ для основного поставщика запросов.
В вашем случае базовым поставщиком запросов является Entity Framework, который неудивительно, что не поймет какой-либо случайный метод и какперевести этот метод в SQL.EF понимает несколько методов, таких как Count, Sum, некоторые методы string / DateTime / primitive, но это все.
Таким образом, сообщение об исключении достаточно точное - EF не понимает этот метод, который вы ему далии, следовательно, не имеет возможности перевести этот метод в SQL.
Однако может возникнуть надежда, если вы посмотрите пакет AutoMapper.EF6 .Он включает в себя пакет DelegateDecompiler
, который использует проверку IL для проверки того, что делает ваш метод, декомпиляции и передачи этого результата в качестве выражения поставщику запросов.
Если это кажется сложным, это так,так что перед тем, как продолжить, вам лучше понять, как работает LINQ.