将一个 table 行复制到另一行

Copy one table row to another

我有一个名为 tbl_persons 的 table。我做了另一个 table,我想在其中创造 tbl_personsHistory.

的历史

两个 table 完全相同,除了名称: 此代码用于 tbl_persons:

的正常数据操作
var myPersonOriginal = dbContext.tbl_persons.FirstOrDefault(item => item.PersonID == parameters.PersonID);

变量 myPersonOriginal 包含完整记录。

如何将单行复制到 tbl_persons历史记录?

尝试:

var toInsert = from b in tbl_persons
                   where your_conditions_goes_here
                   select new A 
                   {
                       ...
                   };

    tbl_persons_copy.InsertAllOnSubmit(toInsert);
    dc.SubmitChanges();

或者

context
  .tbl_persons_copy
  .InsertAllOnSubmit(
    context
      .tbl_persons
      .Where(your_conditions_goes_here)
      .Select(b => new A { ... })
  );

编辑 2:

您可以尝试另一种方式,第一个 select 来自主 table 的所有数据,您要将其插入副本 table。然后将主 table 中的所有 selected 数据一一插入到副本 table 中,如下所示。

list<main_table> liGet=dbContext.tbl_persons.Where(my_conditions_).ToList();

foreach(main_table mb in liGet)
{
copy_table objTbl=new copy_table ();
objTbl.col1=mb.col1;
.
.
.
.
db.copy_table.Add(objTbl);
}

db.SaveChanges();

试试这个方法

var myPersonOriginal = dbContext.tbl_persons.FirstOrDefault(item => item.PersonID == parameters.PersonID);

    tbl_personsHistory.InsertAllOnSubmit(myPersonOriginal );
    dbContext.SubmitChanges();