LINQ to SQL:InsertOnSubmit()vs Add()

问题描述 投票:4回答:1

插入新子记录的最佳方法是:使用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();
}
c# sql linq linq-to-sql datacontext
1个回答
5
投票

由于您已经拥有父ID,因此执行此操作会更有效:

using(DataContext db = new DataContext())
{
   Child c = new Child();
   c.ForeignKeyID = SomeID;
   db.InsertOnSubmit(c);
   db.SubmitChanges();
}

这样您就不会首先检索父级并依赖对象跟踪来查找新项目。

© www.soinside.com 2019 - 2024. All rights reserved.