2013-03-14 3 views
2

Я хочу выполнить метод каждый раз, когда элемент добавляется в DbSet.Выполнение метода каждый раз, когда элемент добавляется в коллекцию

Возможно ли это, не вызывая этот метод каждый раз отдельно?

+0

ты уже устал некоторые вещи ... – Mingebag

+0

нет, у меня нет подхода, я не знаю, если это возможно даже – daniel

+1

Просьба уточнить, что DbSet. Если это просто простой список , то наследовать список и переопределить функцию добавления – Fendy

ответ

1

DbSet имеет свойство «Local», которое является ObservableCollection. Вы можете подписаться на CollectionChanged на этом, чтобы увидеть, когда все было добавлено.

Так что-то вроде:

this.ttActivities.Local.CollectionChanged += ttActivitiesChanged; 


public void ttActivitiesChanged(object sender, NotifyCollectionChangedEventArgs args) 
{ 
    if (args.Action == NotifyCollectionChangedAction.Add) 
    { 
    // Something has been added 
    } 
} 
+0

У меня есть 'public DbSet ttActivities {get; задавать; } 'в моем производном классе DbContext. Как я могу добавить к нему событие? – daniel

+1

@zoidbergi Я обновил свой пример кода, так как вы извлекаете из DbContext, вы должны иметь возможность использовать this.ttActivities.Local.CollectionChanged, чтобы подключиться к событию. – Dutts

+0

К сожалению, это событие вызывается, когда ttActivites создаются/загружаются. есть ли способ избежать этого? – daniel

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