LINQ to SQL context.GetChanges

2

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

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 даже добавлять сущности из одного контекста в другой?
Теги:
linq-to-sql

1 ответ

2
Лучший ответ

Как использовать нестандартную версию:

foreach (var change in changes.Inserts) // note inserts
{         
    myOtherContext.GetTable(change.GetType()).InsertOnSubmit(change);
}
  • 0
    За исключением того, что не будет работать для производных типов :)
  • 0
    Работал как шарм. Большое спасибо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню