Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将实体框架对象强制转换为另一个实体框架对象_C#_.net_Entity Framework - Fatal编程技术网

C# 将实体框架对象强制转换为另一个实体框架对象

C# 将实体框架对象强制转换为另一个实体框架对象,c#,.net,entity-framework,C#,.net,Entity Framework,我有两张表“产品”和“产品回收”。它们具有相同的结构 因此,我想将Product Entity对象转换为Product_Recovery对象,反之亦然,但我得到一个错误: 无法从“MyProject.Objects.Product”转换为“MyProject.Objects.Product\u恢复” 有什么简单的方法可以做到这一点吗?不,不能将一个对象强制转换为另一个对象,除非一个对象派生自另一个对象。C#怎么知道这些类是相同的?但是,您可以使用AutoMapper库从Product转换到Pro

我有两张表“产品”和“产品回收”。它们具有相同的结构

因此,我想将Product Entity对象转换为Product_Recovery对象,反之亦然,但我得到一个错误:

无法从“MyProject.Objects.Product”转换为“MyProject.Objects.Product\u恢复”


有什么简单的方法可以做到这一点吗?

不,不能将一个对象强制转换为另一个对象,除非一个对象派生自另一个对象。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);