如何正确InsertAllOnSubmit()并且比循环InsertOnSubmit()更好?

Met*_*uru 8 c# ienumerable linq-to-sql

说我有:

using (SomeDataContext db = new SomeDataContext())
{

     foreach(Item i in Items)
     {
          DbItem d = new DbItem;
          d.value = i.value;
          //.... etc ...

          db.InsertOnSubmit(d);
     }

     db.SubmitChanges();
}
Run Code Online (Sandbox Code Playgroud)

是否有可能和/或更好(更糟糕的是)?

using (SomeDataContext db = new SomeDataContext())
{
     IEnumerable<DbItem> dbItems = //???? possible?

     foreach(Item i in Items)
     {
          DbItem d = new DbItem;
          d.value = i.value;
          //.... etc ...

          dbItems.Add(d); // ???? again, somehow possible?
     }

     db.InsertAllOnSubmit(dbItems);
     db.SubmitChanges();
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 13

那么你可以使用List<T>:

using (SomeDataContext db = new SomeDataContext())
{
     List<DbItem> dbItems = new List<DbItem>();

     foreach(Item i in Items)
     {
          DbItem d = new DbItem;
          d.value = i.value;
          //.... etc ...

          dbItems.Add(d);
     }

     db.InsertAllOnSubmit(dbItems);
     db.SubmitChanges();
}
Run Code Online (Sandbox Code Playgroud)

不管是否会更高效,我不知道.