分配列表时,将相关实体替换为新实体
假设我有一个实体student
,它具有相关的实体类
。
我需要逻辑来分配新的类
,它将替换现有class
我正在使用实体框架,并且这些类映射到数据库,因此当dbcontext.savechanges时()
被执行,它应该用新记录替换旧记录。
这是为此的一种伪代码 - 具有addrange()
works的版本,但具有classe = newClasses.tolist();
>的版本, - 添加了新类,但没有删除旧的。
谁能解释为什么仅分配列表没有删除旧记录?
public class Student
{
public List<Class> Classes { get; set;}
public void UpdateClassesA(ICollection<Class> newClasses)
{
//this just adds new classes, but doesn't remove the existing ones (when EF SaveChanges is performed)
Classes = newClasses.ToList();
}
public void UpdateClassesB(ICollection<Class> newClasses)
{
Classes = new List<Class>();
Classes.AddRange(newClasses);
}
}
Let's say I've got an entity Student
and it has related entities Classes
.
I need logic to assign new Classes
that would replace existing Classes
I'm using Entity Framework, and these classes are mapped to a database, so when DbContext.SaveChanges()
is executed, it should replace old records with the new ones.
Here is sort of a pseudo code for this - the version with AddRange()
works, but version with Classes = NewClasses.ToList();
- adds new classes but does not remove the old ones.
Can anyone explain why just assigning a list is not removing the old records?
public class Student
{
public List<Class> Classes { get; set;}
public void UpdateClassesA(ICollection<Class> newClasses)
{
//this just adds new classes, but doesn't remove the existing ones (when EF SaveChanges is performed)
Classes = newClasses.ToList();
}
public void UpdateClassesB(ICollection<Class> newClasses)
{
Classes = new List<Class>();
Classes.AddRange(newClasses);
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论