Хорошо, вот что я сделал, чтобы обойти эту проблему.Я убедился, что в каждой таблице, для которой я хочу включить CDC, есть столбец LastModified
типа datetime
.Затем я добавил ключ (с точки зрения EF), состоящий из столбца LastModified
и столбца __$operation
.Я полагаю, что это «вероятно, уникально» (что несколько пугает, но, вероятно, хорошо).Я рассуждаю так: LastModified
с точностью до 3 мс, поэтому единственный раз, когда я (реально) получу 2 строки в моей таблице CDC с той же LastModified
, это обновление;но при обновлении эти две строки будут иметь разные значения __$operation
(a 3 и a 4).Таким образом, составление их вместе по крайней мере имеет смысл для ключа.Я не большой поклонник этого и хочу, чтобы EF4 поддерживал таблицы без ключей.Если у кого-то есть предложения, пожалуйста, дайте мне знать.