C# 将实体框架对象强制转换为另一个实体框架对象
我有两张表“产品”和“产品回收”。它们具有相同的结构 因此,我想将Product Entity对象转换为Product_Recovery对象,反之亦然,但我得到一个错误: 无法从“MyProject.Objects.Product”转换为“MyProject.Objects.Product\u恢复”C# 将实体框架对象强制转换为另一个实体框架对象,c#,.net,entity-framework,C#,.net,Entity Framework,我有两张表“产品”和“产品回收”。它们具有相同的结构 因此,我想将Product Entity对象转换为Product_Recovery对象,反之亦然,但我得到一个错误: 无法从“MyProject.Objects.Product”转换为“MyProject.Objects.Product\u恢复” 有什么简单的方法可以做到这一点吗?不,不能将一个对象强制转换为另一个对象,除非一个对象派生自另一个对象。C#怎么知道这些类是相同的?但是,您可以使用AutoMapper库从Product转换到Pro
有什么简单的方法可以做到这一点吗?不,不能将一个对象强制转换为另一个对象,除非一个对象派生自另一个对象。C#怎么知道这些类是相同的?但是,您可以使用
AutoMapper
库从Product
转换到Product\u Recovery
,这通过使用反射使转换更容易
查看或,并在准备使用时开始安装
如何使用的最简单示例是(从入门中复制):
//在程序构造中的某个地方执行此命令
//只需一次即可生成所需的映射
初始化(cfg=>cfg.CreateMap());
//执行此操作以从一个转换到另一个:
Product dto=Mapper.Map(productInstance);
如果您需要,可以在末尾添加.ReverseMap()。可能重复的@Aron:是的,这是一个重复的问题,但该问题已经存在4年了,AutoMapper
那时可能不可用。老实说,我不确定在引用问题出现的情况下,最佳做法是离开还是结束dated@caesay通常我会说,你应该1)投票结束这个问题2)用你的现代答案回答这个问题。然而,最重要的答案是Jon Skeet的答案,这会使事情复杂化……我相信这有一个meta。
// execute this somewhere in your program construction
// only once to generate the required mappings
Mapper.Initialize(cfg => cfg.CreateMap<Product, Product_Recovery>());
// execute this to transform from one to another:
Product dto = Mapper.Map<Product_Recovery>(productInstance);