2014-10-29 3 views
1

Я использую 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 < Protocol.Models.BaseEntities.T_DOC>' на 'System.Collections.Generic.ICollection < Protocol.Models.BaseEntities.GenericsEntities.T_DOC_GENERIC>' , Явное преобразование существует (вы пропускаете листинг?) D: \ PortalProtocolo \ Models \ Mappers \ GenericsMappers \ T_DOC_GENERIC.cs

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

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

Кто-нибудь может мне помочь?

+0

Если бы это сработало, литой будет размещаться ПОСЛЕ Лямбды. '.WithMany (ttType => (T_DOC) tType.T_DOC)' – Khan

+0

Я тоже пробовал, но все равно не работает! – Pedro

+0

Я не думаю, что это даже скомпилировалось? Является ли 'T_DOC_GENERIC' предположительным именем конструктора типового типа? –

ответ

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; 
} 

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