2009-10-16 2 views
2

У меня есть две таблицы в файле dbml LINQ to SQL. Я пытаюсь получить все изменения, представленные в контексте, который я могу получить с помощьюLINQ to SQL context.GetChanges

var myOtherContext; 
var changes = context.GetChangeSet(); 

foreach (var change in changes) 
{   
    Type t = change.GetType(); 
    if (change is Product) 
    { 
     myOtherContext.GetTable<Product>().InsertOnSubmit((Product) change); 
    } 
    if (change is Supplier) 
    { 
     myOtherContext.GetTable<Supplier>().InsertOnSubmit((Supplier)change); 
    } 
} 

В принципе, я копирую все изменения, которые произошли в одном контексте в другой контекст (myOtherContext). Я не хочу использовать оператор if для проверки типа изменения. Есть ли способ, которым я могу написать:

myOtherContext.GetTable<typeof(change)>().InsertOnSubmit((typeof(change) change); 

Ваша помощь будет оценена.

С уважением, Parminder

+0

ли Linq2SQL даже позволяют добавлять объекты из одного контекста, которые будут добавлены к другому? – leppie

ответ

2

Как об использовании необщего версии:

foreach (var change in changes.Inserts) // note inserts 
{   
    myOtherContext.GetTable(change.GetType()).InsertOnSubmit(change); 
} 
+0

За исключением того, что не будет работать для производных типов :) – leppie

+0

Работали как шарм. Большое спасибо. – Parminder