вставить в динамическое обновление - LINQ для SQL - PullRequest
0 голосов
/ 04 февраля 2010

Я разрабатываю приложение с динамическими данными, в котором я пытаюсь выполнить вставку RequestRevision во время обновления запроса (регистрация изменения запроса, что-то в этом роде)

public partial class ProjectDataContext  
    {
        partial void UpdateRequest(Request instance)
        {                
            RequestRevision rv = new RequestRevision(Requests.GetOriginalEntityState(instance));                 
            this.ExecuteDynamicInsert(rv);                
            this.ExecuteDynamicUpdate(instance);
        }
    }

этот код ошибки "Операцияне может быть выполнено для объекта, потому что он не отслеживается при изменении. "

, когда я добавил код для отслеживания изменений

public partial class ProjectStatusDataContext  
    {
        partial void UpdateRequest(Request instance)
        {
            bool tracking = ObjectTrackingEnabled;
            ObjectTrackingEnabled = true;
            RequestRevision rv = new RequestRevision(Requests.GetOriginalEntityState(instance));
            //instance.RequestRevisions.Add(rv); --not working 
            this.ExecuteDynamicInsert(rv);
            //this.RequestRevisions.InsertOnSubmit(rv); -- not working
            ObjectTrackingEnabled = tracking;
            this.ExecuteDynamicUpdate(instance);
        }
    }

Теперь я получаю ошибку" Параметры контекста данных не могут быть измененыпосле того, как результаты были возвращены из запроса. "

1 Ответ

0 голосов
/ 17 февраля 2010

Я добился этого с помощью SQL триггеров. Который срабатывает при выполнении обновления идентификатора таблицы запросов.

...