title: Linq to Entities: How to copy records from one table to another efficiently?
body: <p>We have an event system which organizes data by date and time.  We frequently copy data from the old event to the new event as a starter, then modify it.  </p>
  
  <p>This is what we do in Linq:</p>
  
  <ul>
  <li>Get the source objects locally with .ToList()</li>
  <li>For each item create a new object</li>
  <li>Copy the non-primary key values to the new object and set the new primary key</li>
  <li>Add that object to the table</li>
  </ul>
  
  <p>This generates a tremendous amount of database calls.  It's wrapped in a transaction at least.</p>
  
  <p>This is the statement in SQL.  Any way to make Linq that efficient without embedding SQL?</p>
  
  <pre><code>insert into targetTable (eventID, two, three, four five)
  select @newEventId as eventID, two, three, four, five
  from   targetTable 
  where  eventid = @eventid
  </code></pre>