2012-06-08 3 views
1

Я использую Visual Studio 2010 и использую Entity Framework и SQL Server 2008 R2. У меня есть после триггера на моем столе, а когда «Сохранить одну запись в таблице», другой столбец в другой таблице изменился. Можно ли изменить автоматически измененную запись в моем приложении.Автоматическое обновление данных в инфраструктуре Entity

+0

Я не понимаю вопроса. Вы хотите, чтобы уже запрошенный объект получил обновленное свойство при возникновении триггера? AFAIK это невозможно без требования к сущности. Триггеры происходят на стороне базы данных. – Dante

+1

Есть ли причина, по которой у вас должен быть «триггер» в базе данных? – hanzolo

+0

Триггеры усложняют решение, и во многих случаях вы найдете другие решения, которые улучшают работу. Если эта таблица не обновляется триггером, она относится к другой базе данных (что, вероятно, не относится к вашему случаю), вам действительно нужно пересмотреть свой дизайн. – NoChance

ответ

0

Я Поиск по этому вопросу и найти ниже код, чтобы обновить данные в EF: MyModelEntities.Refresh(System.Data.Objects.RefreshMode.StoreWins, TbMyRecord);

+0

Какой тип «TbMyRecord»? –

2

Существует событие InsertOnSubmit, что пожары, как отметил here, не уверен, что это поможет вам ..

но есть различные события вызывается при сохранении/изменении сущностей, но вы должны взять с собой «спусковой крючок «логика в сторону кода, а затем, вероятно, разумно обрабатывать различные изменения сущностей. подробнее здесь: How To Execute Business Logic When Saving Changes

и после более глубокого изучения названия вашего вопроса кажется, что вы пытаетесь получить данные из обновленная таблица .. и, как говорится в комментарии, все, что выходит за рамки «контекста» сущности, должно быть «перезагружено». Теперь, если этот «загружающий» код обрабатывается в вашей обработке «change event», вы можете это сделать .. так почему бы просто не поместить всю эту логику в свой уровень кода? сделайте обновления для ваших 2 "сущностей", а затем сохраните их одним махом ..

+0

Я хочу перезагрузить только некоторые данные из базы данных. –

+0

, если у вас есть сущность, которая содержит данные .. и если вы знаете, что данные должны быть, вы можете просто установить ее .. если это своего рода совокупность, то вам либо нужно загрузить весь объект, или выполнить агрегацию в коде, и установить значения. – hanzolo

1

Хотя, не ответ, вы после этого, я думаю, вы должны переместить логику «триггер» из базы данных в код приложения. Это решит вашу проблему, и позволит вам написать единичный тест, подтверждающий правильность обновления данных.

Смежные вопросы