Я пытаюсь использовать ValueInjecter для сопоставления моих сущностей с моими DTO в моем основном проекте asp.net.
Может ли кто-нибудь объяснить мне, почему это работает:
var list = _context.Assets
.ToList();
var vm = list
.Select(a => new ViewModel().InjectFrom(a))
.Cast<ViewModel>()
.ToList();
return vm;
Но это не так:
var list = _context.Assets
.Select(a => new ViewModel().InjectFrom(a))
.Cast<ViewModel>()
.ToList();
return list;
Это ошибка ValueInjecter? Я что-то не так делаю?
Может ли Automapper решить эту проблему? Я настоятельно предпочитаю синтаксис valueinjecter по сравнению с Automapper.
Спасибо за вашу помощь!
Edit:
@ Крис Пратт: Спасибо за ваш быстрый ответ. Но почему это работает, когда я сопоставляю свойства вручную, как в примере ниже. Я все еще применяю это сопоставление к интерфейсу IQueryable, а не в памяти.
Тогда почему это работает?
var vm = _context.Assets
.Select(a => new ViewModel
{
Id = a.Id,
Code = a.Code
})
.AsNoTracking()
.ToList();
return vm;