2014-10-29 22 views
1

我使用EntityTypeConfiguration來映射我的數據庫。在lambda表達式中投射一個對象

問題是,類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

有一種方法可以在lambda表達式中進行投射嗎?

我試過一個像.WithMany((T_DOC)​​tType => tType.T_DOC)​​的顯式類型轉換,但我沒有理想!

有人可以幫助我嗎?

+0

如果它工作,演員將被放置在拉姆達之後。 '.WithMany(ttType =>(T_DOC)​​tType.T_DOC)​​' – Khan 2014-10-29 19:42:07

+0

我也試過了,但還是不行! – Pedro 2014-10-29 19:43:33

+0

我不認爲這會編譯? 'T_DOC_GENERIC'應該是一個類型構造函數的名字嗎? – 2014-10-29 19:51:11

回答

1

寫轉換器從T_DOCT_DOC類轉換/映射到T_DOC_GENERIC(返回類型)來執行這個轉換:

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

您可以將它添加到現有的類或令,如果你喜歡它的靜態。