Скопируйте метаданные из сущностей в ViewModels в Automapper 5

В своем приложении MVC я использую контейнер Autofac IoC вместе с Automapper. Это дает мне возможность реализовать собственные ViewModels.

Основной вопрос: как я могу скопировать метаданные из сущностей в ViewModels с помощью Automapper 5.1.1?

Я пытался внедрить решение Bettys, но не могу правильно зарегистрировать новых провайдеров, используя этот подход.

Код также представлен ниже:

ModelMetadataProviders.Current = new MetadataProvider(
AutoMapper.Mapper.Engine.ConfigurationProvider);

ModelValidatorProviders.Providers.Add(new ValidatorProvider(
AutoMapper.Mapper.Engine.ConfigurationProvider);

или же

ModelMetadataProviders.Current = new MetadataProvider(
(AutoMapper.IConfigurationProvider)AutoMapper.Mapper.Configuration);

ModelValidatorProviders.Providers.Add(new ValidatorProvider(
(AutoMapper.IConfigurationProvider)AutoMapper.Mapper.Configuration));

Там нет собственности, как Mapper.Engine.

Когда я реализую второй подход, я получил недопустимое исключение операции:

Дополнительная информация: Mapper не инициализирован. Вызовите Initialize с соответствующей конфигурацией. Если вы пытаетесь использовать экземпляры mapper через контейнер или иным образом, убедитесь, что у вас нет вызовов статических методов Mapper.Map, и если вы используете методы расширения ProjectTo или UseAsDataSource, убедитесь, что вы передаете соответствующий IConfigurationProvider. пример.

Итак, как мне инициализировать AutoMapper.Mapper.Configuration?

Заранее спасибо за ваше время и помощь.

Или, может быть, есть другой, лучший способ сопоставить метаданные с моделями представления?

0 ответов

Другие вопросы по тегам