【问题标题】:LINQ to SQL: InsertOnSubmit() vs Add()LINQ to SQL:InsertOnSubmit() 与 Add()
【发布时间】:2014-09-28 10:50:24
【问题描述】:

插入新子记录的最佳方法是什么:使用 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();
}

【问题讨论】:

  • 这取决于您 - 您和您的代码更清楚的是什么?
  • Parent.Add 是如何定义的?
  • @MarcinJuraszek,看来 OP 打错了,正在谈论 EntityCollection.Add

标签: c# sql linq linq-to-sql datacontext


【解决方案1】:

由于您已经有了父 ID,这样做会更有效率:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-06
    • 2011-10-22
    • 2011-04-28
    • 2010-11-12
    • 1970-01-01
    • 2020-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多