【问题标题】:What is the simplest way to copy a record from one entity to another entity with Entity framework?使用实体框架将记录从一个实体复制到另一个实体的最简单方法是什么?
【发布时间】:2012-09-24 18:04:00
【问题描述】:

我有一个 SQL 表,其中包含我想使用 Entity Framework 移动到几乎相同的表中的记录。即将记录从主表移动到存档表。

第二个表是原始表的超集,因为它有一些额外的字段来指定存档日期等...

是否有更简单的方法来完成此操作,然后手动将每个字段从原始实体匹配到存档实体? 我查看了 Automapper,但发现它仅适用于内存实体,而不适用于我的 Iqueryable 数据。

TIA 约翰 (英孚新手)

【问题讨论】:

  • 这是您需要定期做的事情还是一次性交易?
  • 单个项目中有五个不同的实体,因此它是一次性项目。
  • 您想知道具体如何使用 EF 执行此操作吗?我问是因为对于一次性移动,SQL 脚本可能更容易编写。
  • 我想具体了解如何在 EF 中执行此操作。 :)
  • @JohnS 无论如何你都需要把它带入内存,所以你仍然可以使用 AutoMapper。

标签: c# entity-framework entity-framework-5


【解决方案1】:

一种方法是使用 2 个实体类(一个用于事务表,一个用于存档表)并使用 AutoMapper 从事务对象填充存档对象,并调用 SaveChanges。

【讨论】:

  • 我确实有两个实体类,但是当我尝试映射时,我收到与源是 Iquery 类型有关的错误。我需要把它记入记忆中,但不知道该怎么做。 (记住这里的新手)。 TIA
  • @JohnS 我找不到比转换为内存列表然后映射更简单的方法来使用 AutoMapper 映射 IQueryable。有一些关于在 IQueryable 上编写扩展方法来构建表达式的博客文章,但它们处理选择和投影数据到不同的实体。您的案例看起来像一个审计场景,我发现this blog post 概述了如何完成。您基本上在界面中有 Audit / Archive 字段,并在 SavingChanges 上设置事件处理程序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多