Ни один из других ответов не работал для меня. После некоторого tinkering я удалил sklearn:
pip uninstall sklearn
Затем я удалил папку sklearn отсюда: (скопируйте путь к вашей системе и версии python)
C:\Users\%USERNAME%\AppData\Roaming\Python\Python36\site-packages
И установили его от колеса с этого сайта: link
Ошибка была там, вероятно, из-за конфликта версий с установленным в другом месте sklearn.
Благодаря Ивану Стоеву я начал изучать AutoMapper.Collection , который действительно является расширением, которое я надеялся найти. После реализации мои списки обновляются так, как я хотел. Конфигурация проста в моем использовании, так как мне нужно только указать Id моих объектов.
Моя начальная конфигурация изменена на:
using AutoMapper;
using AutoMapper.EquivalencyExpression;
[....]
public void ConfigureServices(IServiceCollection services)
{
services.AddAutoMapper(cfg => {
cfg.AddCollectionMappers();
});
}
[....]
И мой профиль отображения:
CreateMap<MainObject, MainObjectResource>().ReverseMap()
.ForMember(m => m.Id, opt => opt.Ignore());
CreateMap<SubItem, SubItemResource>().ReverseMap()
.EqualityComparison((sir, si) => sir.Id == si.Id);
Эта проблема труднее решить, чем кажется на первый взгляд. Вам достаточно легко составить собственное отображение своих списков, потому что вы знаете свое приложение; AutoMapper нет. Например, что делает исходный элемент равным целевому элементу, так что AutoMapper сможет различить, что он должен сопоставлять существующий, а не добавлять? ПК? Какое свойство является ПК? Является ли это свойство одинаковым как для источника, так и для пункта назначения? На эти вопросы вы можете легко ответить в своем AfterMap
, не так много для AutoMapper.
В результате AutoMapper всегда отображает коллекции как новые элементы. Если это не то поведение, которое вам нужно, то тут приходят такие вещи, как AfterMap
. Также имейте в виду, что AutoMapper не предназначен специально для работы с EF, что действительно является проблемой, а не AutoMapper. Отслеживание изменений в EF является причиной проблем с отображением коллекции AutoMapper по умолчанию. В других ситуациях и сценариях это не проблема.