GetChangeSet ChangeSet, Linq, в каком порядке будут применяться изменения?
Я выполняю код, чтобы получить набор изменений непосредственно перед вызовом изменений Linq Submit.
private void OnSubmitHandleReplication()
{
System.Data.Linq.ChangeSet changes = GetChangeSet();
//Do something with change set
}
В разделе "Что-то сделать" мне нужно знать, в каком порядке были отправлены вещи и в каком порядке они будут публиковать в базе данных. Я вижу, что набор изменений имеет.Inserted,.Updated и.Deleted. Я предполагаю, что они находятся в том порядке, в котором они будут применяться. Однако я хочу знать общий порядок. Я предполагаю, что это может быть вставка, обновление, затем еще 3 вставки или что-то, что включает в себя отскок назад и вперед между этими коллекциями.
Обновление 1
Извините, думал, что заголовок понятен, Linq to SQL
Обновление 2
Причина, по которой я это делаю, состоит в том, чтобы воспроизвести их позже в другой БД.
2 ответа
Это довольно сложно.
Вам нужно будет довольно глубоко копаться в трекере изменений, чтобы получить реальный заказ.
Что касается порядка вставки, обновления, удаления, вставки происходят перед удалением, поэтому вам нужно следить за уникальными ограничениями (что, вероятно, означает, что вам нужно обновить, а не пересоздать).
РЕДАКТИРОВАТЬ
Если вам просто нужно "повторить", вы наверняка можете использовать функцию регистрации.
Вы можете включить вход в Linq2SQL, установив YourDataContext.Log = Console.Out
или к любому другому совместимому выходному потоку. Каждый SQL-запрос, который LINQ отправляет в базу данных, будет напечатан там. Вы должны использовать это только для отладки вашей проблемы, потому что LINQ отправляет довольно много запросов:)
Изменить: Что касается порядка действий, я не могу помочь вам больше, я никогда не смотрел на эти запросы больше, чем я должен был.