C# 使用Dbset.Add与使用EntityState.Added
我正在使用EF6开发一个asp.NETMVC5。在添加新对象时,编写以下代码是否有任何区别:-C# 使用Dbset.Add与使用EntityState.Added,c#,asp.net-mvc,linq,entity-framework,ado.net,C#,Asp.net Mvc,Linq,Entity Framework,Ado.net,我正在使用EF6开发一个asp.NETMVC5。在添加新对象时,编写以下代码是否有任何区别:- db.Students.Add(student); db.SaveChanges(); 或 同样,当删除对象时:- db.Entry(studentToDelete).State = EntityState.Deleted; db.SaveChanges(); 或 谢谢可能重复@Colin,但您链接中的两个答案并不完全相同,因为其中一个回复提到使用这两种方法会产生相同的效果。另一个回复提到,当使用
db.Students.Add(student);
db.SaveChanges();
或
同样,当删除对象时:-
db.Entry(studentToDelete).State = EntityState.Deleted;
db.SaveChanges();
或
谢谢可能重复@Colin,但您链接中的两个答案并不完全相同,因为其中一个回复提到使用这两种方法会产生相同的效果。另一个回复提到,当使用.Add&.Remove时,实体的相关导航属性将被添加或删除,所以我不确定哪个答案是正确的?这一点很好。我没有发现,但我认为第二个答案是正确的。我将发表评论,要求澄清接受的答案。同时,我建议您阅读这篇文章:通过使用外键,您可以避免Add方法和断开连接的实体的大多数问题。@Colin您注意到这一点很好,但是您是否也建议关闭此问题,因为有3个请求关闭此问题,,虽然我发现这仍然被认为是一个新的有效的问题..Ladislav Mrnka现在已经更正了我链接的问题的答案,所以你的问题的补充部分有一个明确的答案。删除了我的投票,因为删除的问题仍然没有得到回答-但也许你可以改进你的问题标题?
db.Entry(studentToDelete).State = EntityState.Deleted;
db.SaveChanges();
db.Remove(StudentToDelete)
db.SaveChanges();