我正在使用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);
}
}
无法隐式转换类型&#39; System.Collections.Generic.ICollection&lt; Protocol.Models.BaseEntities.T_DOC&gt;&#39; to&#39; System.Collections.Generic.ICollection&lt; Protocol.Models.BaseEntities.GenericsEntities.T_DOC_GENERIC&gt;&#39;。存在显式转换(您是否缺少演员?)D:\ PortalProtocolo \ Models \ Mappers \ GenericsMappers \ T_DOC_GENERIC.cs
有一种方法可以在lambda表达式中进行转换吗?
我尝试了一个像.WithMany((T_DOC)tType =&gt; tType.T_DOC)的显式演员,但我没有想法如何!
有人可以帮助我吗?
答案 0 :(得分: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;
}
您可以将其添加到现有类中,或者根据需要将其设置为静态。