LINQ è un linguaggio di query, in modo da non fare gli aggiornamenti o inserti. Tuttavia -il LINQ to SQL modello oggetto entità ha metodi per la gestione CUD:
using(MyDataContext dc = new MyDataContext())
{
//select the source entities from Table2
var Table2Entities = (from e in dc.Table2 where e.Field1 == "value" select e);
//for each result, create a new Table1 entity and attach to Table1
Table2Entities.ForEach(t2e => dc.Table1.InsertOnSubmit(
new Table1Entity {
Field1 = t2e.Field1,
Field2 = t2e.Field2,
Field3 = t2e.Field3
});
//submit the changes
dc.SubmitChanges();
}
La vera differenza qui è che richiede due transactionsinstead SQL separata di una - una a selezionare, e uno da inserire.
fonte
2009-09-13 04:39:36
Avete qualche documento? per sostenere l'affermazione che tutti gli inserimenti avvengono in un round trip? –
@Adam nope. Solo la mia memoria, che è spesso difettosa. Toglierò quel po 'finché non sarà chiarito in un modo o nell'altro. Grazie! –
@Adam, lo strumento SQL Profiler farà luce su come LINQ-to-SQL sta comunicando con il server del database ed è un buon modo per misurare le prestazioni e quanto bene LINQ sta costruendo le sue query e i suoi batch. –