gpt4 book ai didi

c# - 使用 C# Linq 将对象插入到列表中

转载 作者:行者123 更新时间:2023-11-30 22:21:51 25 4
gpt4 key购买 nike

我正在尝试将一个对象插入到列表中。

 childModel childElement= new childModel;

parentModel myList = db.list.Where(e => e.id.equals(someId)).Include("someNestedList").FirstOrDefault();

childElement.prop1 = true;
myList.someNestedList.Insert(index, childElement);

所以我注意到从这里开始一切正常,因为它将子对象插入列表中适当的索引处。当我尝试保存此列表时出现问题。

 db.Entry(myList).State = EntityState.Modified;
db.SaveChanges();

我注意到它没有在数据库中保存索引,而是添加了另一个条目。与下一个可用的 id。所以我的意思是,一旦我插入值,它就不会重新排列主键。

不使用 insert 方法而只对每个子元素使用 db.Entry() = EntityState.Modified 是否更好?

有什么建议吗?

最佳答案

当您使用 .ToList() 时,您正在创建一个新实例,因此当您执行 SaveChanges 时,EF 不知道这个新实例,因此它会在您的表中插入一个新项目。

你可以在这里看到一个很好的例子:http://www.entityframeworktutorial.net/update-one-to-many-entities-in-entity-framework.aspx

关于c# - 使用 C# Linq 将对象插入到列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36460608/

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