У меня есть проблема, чтобы скопировать общий объект родового объектаРодовой объект родового объекта с Automapper
public class Customer
{
public int CustomerId { get; set; }
public virtual ICollection<Quote> Quotes { get; set; }
}
Я использую этот общий класс, чтобы скопировать объект в объект:
public static class GenericAutomapper
{
public static void PropertyMap<T, U>(T source, U destination)
where T : class, new()
where U : class, new()
{
Mapper.CreateMap(typeof(T), typeof(U));
Mapper.Map<T, U>(source); //crash here
}
}
Когда я получаю клиент (используя EF 6.1.2) и используйте этот метод, я получаю ошибку в строке «Сбой здесь». Коллекция Котировки выглядеть: «((System.Data.Entity.DynamicProxies.Customer_AC635AD71AC95634EF9694FDC434135B488FD116F3C2B6A287846A7886521F3F) источник) .Quotes»
У меня нет никакой проблемы, когда я включаю это: .Include(x => x.Quotes)
в моем запросе, нормальный сбор загружен.
Есть ли способ управлять «не загруженной» коллекцией?
Спасибо,
Этот класс должен оставаться общим и, конечно же, ничего конкретного о классе. –
Класс отображения останется конкретным, но проблема в том, что вы пытаетесь сопоставить динамический класс прокси, что не очень хорошо. Вам нужно выполнить запрос (который не будет иметь ничего общего, поскольку я ожидаю, что вы будете работать с определенным DBSet <> s), а затем вызовите функцию сопоставления AutoMapper. Это даст вам конкретные типы и должно позволить карте функционировать. Это лучше всего догадывается с предоставленной ограниченной информацией. – WestDiscGolf