Приведите объект в лямбда-выражения

Я использую EntityTypeConfiguration для сопоставления моей базы данных.

Проблема в том, что класс T_DOC_GENERIC наследует T_DOC, когда я устанавливаю свои отношения с WithMany, он ожидает объект T_DOC_GENERIC, который объявлен как T_DOC.

public class T_DOC_GENERICMapper : EntityTypeConfiguration<T_DOC_GENERIC>
    {
        T_DOC_GENERICMapper()
        { 
            this.ToTable("T_DOC");
            this.HasKey(tDoc => tDoc.ID);
            this.HasOptional(tDoc => tDoc.T_TYPE)
                .WithMany(tType =>  tType.T_DOC)
                .HasForeignKey(tDoc => tDoc.COD_TYPE);
        }
    }

Не удается неявно преобразовать тип 'System.Collections.Generic.ICollection' в 'System.Collections.Generic.ICollection'. Существует явное преобразование (вам не хватает приведения?) D:\PortalProtocolo\Models\Mappers\GenericsMappers\T_DOC_GENERIC.cs

Есть способ разыграть внутри лямбда-выражения?

Я пробовал явное приведение типа.WithMany((T_DOC)tType => tType.T_DOC), но я понятия не имею, как!

Кто-то может мне помочь?

1 ответ

Решение

Написать конвертер для преобразования / карты из T_DOC в T_DOC_GENERIC (тип возврата) в T_DOC класс для выполнения этого броска:

public T_DOC_GENERIC ConvertToGeneric(T_DOC source)
{
    T_DOC_GENERIC destination = new T_DOC_GENERIC(){};

    /* Map T_DOC source to T_DOC_GENERIC destination here */

    return T_DOC_GENERIC;
}

Вы можете добавить это к существующему классу или сделать его статическим, если хотите.

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