以下实例化实体的方式有什么区别?考虑到Student是数据库中的表。
Student stud
using (var ctx = new SchoolDBEntities())
{
stud = ctx.Students.Where(s => s.StudentName == "New Student1").FirstOrDefault<Student>();
}
using (var dbCtx = new SchoolDBEntities())
{
var student = new Student();
}
它只是风格上的差异还是我缺少其他一些差异?
答案 0 :(得分:0)
在第一种方式中,对象仍然附加到上下文。您这样做是为了更新实体,下一个实体,您必须将对象添加到上下文中以进行保存,通常是为了添加新记录。
答案 1 :(得分:0)
在第一种方法中,stud
从数据库中提取,仍然附加到上下文。如果您进行了更改并调用db.SaveChanges()
,则这些更改将反映在数据库中。
第二种方法是创建Student
的新实例。您必须调用db.Students.Add(student)
将其添加到数据库中。在您想要添加它之前,您不需要使用此方法的using语句。
Is it just difference in style or is there some other difference I am missing?
一个仍然链接到上下文,另一个只是数据库之外的对象,直到你添加它。