C# 在lambda表达式中强制转换对象

C# 在lambda表达式中强制转换对象,c#,entity-framework,lambda,mappers,C#,Entity Framework,Lambda,Mappers,我正在使用EntityTypeConfiguration映射我的数据库 问题是,类T_DOC_GENERIC继承了T_DOC,当我设置我与许多人的关系时,他期望一个对象T_DOC_GENERIC,他声明为T_DOC public class T_DOC_GENERICMapper : EntityTypeConfiguration<T_DOC_GENERIC> { T_DOC_GENERICMapper() { thi

我正在使用EntityTypeConfiguration映射我的数据库

问题是,类T_DOC_GENERIC继承了T_DOC,当我设置我与许多人的关系时,他期望一个对象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);
        }
    }
public class T\u DOC\u GENERICMapper:EntityTypeConfiguration
{
T_DOC_GENERICMapper()
{ 
本表为ToTable(“T_DOC”);
this.HasKey(tDoc=>tDoc.ID);
this.has可选(tDoc=>tDoc.T\u类型)
.WithMany(tType=>tType.T\u DOC)
.HasForeignKey(tDoc=>tDoc.COD\u类型);
}
}
无法将类型“System.Collections.Generic.ICollection”隐式转换为“System.Collections.Generic.ICollection”。存在显式转换(是否缺少转换?)D:\PortalProtocolo\Models\Mappers\GenericsMappers\T\u DOC\u GENERIC.cs

有办法在lambda表达式中进行转换吗

我尝试了一个显式的cast,比如.WithMany((T_DOC)tType=>tType.T_DOC),但我不知道该怎么做


有人可以帮我吗?

T\u DOC
类中编写一个转换器,将
T\u DOC
转换/映射到
T\u DOC\u 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;
}

您可以将其添加到现有类中,或者如果愿意,将其设置为静态。

如果要使其工作,则强制转换将放置在lambda之后
.WithMany(ttType=>(T\u DOC)tType.T\u DOC)
我也试过了,但还是不起作用!我甚至不认为这会被编译?
T\u DOC\u GENERIC
应该是键入的构造函数名称吗?另外,我更改了原始名称,但忘了更改构造函数,我没有看到这个!编辑,谢谢!好的,让我们试着了解一下您试图在数据库表方面做些什么。您需要一个名为
T\u DOC
的表,该表将有一个指向
T\u类型
表主键的可空外键。映射到
T\u DOC
表的类型名为
T\u DOC\u GENERIC
,这有点让人困惑,但没问题。
T\u DOC
类型是从哪里来的?
T\u DOC
是否映射到另一个表?是否希望每个类型层次结构都有一个表?