gpt4 book ai didi

c# - 将一系列条目添加到数据库

转载 作者:太空宇宙 更新时间:2023-11-03 23:14:39 27 4
gpt4 key购买 nike

现在我这样做是为了将一些东西放入我的数据库中。

public void AddMonsters()
{
Monster NewMonster = new Monster();

NewMonster.Level = 1;
....
NewMonster.Strength = 10;
db.Monsters.Add(NewMonster);
db.SaveChanges();

NewMonster.Level = 3;
.....
NewMonster.Strength = 197;
db.Monsters.Add(NewMonster);
db.SaveChanges();

NewMonster.Level= 30;
....
NewMonster.Strength = 275;
db.Monsters.Add(NewMonster);
db.SaveChanges();

}

我必须为每个SaveChanges

但我知道数据库中有一个 AddRange 函数,但我没有让它工作。

如何轻松地一次添加多个条目?

谢谢。

最佳答案

问题是您正在重复使用同一个变量 NewMonster。如果您为每个怪物创建一个新的对象实例,您将只能在最后调用 db.SaveChanges()

您可以创建一个怪物列表,然后使用 AddRange()

var monsters = new List<Monster>() {
new Monster { Level = 1, Strength = 10 },
new Monster { Level = 10, Strength = 105 },
};

db.Monsters.AddRange(monsters);
db.SaveChanges();

需要澄清的是, Entity Framework 上方的代码片段中恰好跟踪了 Monster 的一个实例——因此您将无法使用 AddRange 或不必重复调用 .SaveChanges()。您实际上是在获取同一个对象,更改变量,然后执行 .Add 和 .SaveChanges。

按照指定创建一个列表可能是解决您的问题的最干净的解决方案——尽管您可以创建任何 Monster 集合,然后像您预期的那样使用 .AddRange 一次添加它们。

关于c# - 将一系列条目添加到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37668900/

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