gpt4 book ai didi

c# - 如何使用 Entity Framework Core 将 SQL 数据从一个表传输到另一个表

转载 作者:行者123 更新时间:2023-12-05 07:23:48 25 4
gpt4 key购买 nike

我的数据库中有两个包含相同列的表。 TBL one和TBL 2是历史表。当我将数据输入 TBL 1 时,我想使用 EF Core 2.2 将所有数据从 TBL 1 移动到 Tbl 2(作为历史数据)。

我不想编写不必要的循环使代码难看。

var MyEntity = new MyEntities();
var TBL1 = MyEntity.TBL1.Find();
var TBL2 = new TBL2();

TBL2.CurrentValues.SetValues(TBL1);
//CurrentValues is not accept in code. Giving me build error

MyEntity.TB2.Add(data2);
MyEntity.TB1.Remove(data1);
MyEntity.SaveChanges();

我只需要使用 EF 将 SQL 数据从表 1 复制到表 2 并避免循环。任何带有映射器的示例或任何有效的示例都会有所帮助。

最佳答案

将导航属性添加到您的 TBL2 模型:

public TBL1 TBL1 { get; set; }

像这样向您的 TBL1 模型添加投影:

public static Expression<Func<TBL1, TBL2>> Projection
{
return tbl1 => new TBL2
{
Prop1 = tbl1.Prop1,
Prop2 = tbl1.Prop2,
TBL1 = tbl1,
};
}

并使用投影来获得 TBL1 和 TBL2 的实例,如下所示:

var MyEntity = new MyEntities();
var tbl2 = MyEntity.TBL1.Where(x => x.Id == id).Select(TBL1.Projection).SingleOrDefault();
vat tbl1 = tbl2.TBL1;

MyEntity.TB2.Add(tbl2);
MyEntity.TB1.Remove(tbl1);
MyEntity.SaveChanges();

关于c# - 如何使用 Entity Framework Core 将 SQL 数据从一个表传输到另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55777023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com