插入新子记录的最佳方法是:使用Add()
还是InsertOnSubmit()
?
这些方法之间有什么区别吗?
InsertOnSubmit()
示例:
using (DataContext db = new DataContext())
{
Parent p = db.Parents.Where(q => q.ID == SomeID).SingleOrDefault();
Child c = new Child();
c.ForeignKeyID = p.ID;
db.InsertOnSubmit(c);
db.SubmitChanges();
}
Add()
示例:
using (DataContext db = new DataContext())
{
Parent p = db.Parents.Where(q => q.ID == SomeID).SingleOrDefault();
Child c = new Child();
p.Add(c);
db.SubmitChanges();
}
答案 0 :(得分:5)
由于您已拥有父ID,因此执行此操作会更有效:
using(DataContext db = new DataContext())
{
Child c = new Child();
c.ForeignKeyID = SomeID;
db.InsertOnSubmit(c);
db.SubmitChanges();
}
这样您就不会先检索父级并依赖对象跟踪来查找新项目。