Entity Framework ObjectStateEntries в порядке зависимости / порядок сохранения - PullRequest
2 голосов
/ 20 июня 2011

Мне нужно получить все ObjectStateEntries из моего ObjectStateManager в том порядке, в котором они будут сохранены (в порядке зависимости).Есть ли простой способ сделать это?

Спасибо.

1 Ответ

1 голос
/ 11 августа 2011

Да, есть способ подключиться к процессу сохранения, если Entity Framework для выполнения некоторой пользовательской логики.

Вот пример того, как расширить простую модель NorthwindEntities и выполнить некоторую работу во время процесса добавления / обновления / удаления:

public partial class NorthwindEntities
{
    partial void OnContextCreated()
    {
        SavingChanges += OnSavingChanges;
    }

    private void OnSavingChanges(object sender, EventArgs e)
    {
        var context = sender as NorthwindEntities;

        if (context != null)
        {
            context.DetectChanges();

            var objectStateManager = context.ObjectStateManager;

            foreach (var entry in objectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified | EntityState.Deleted))
            {
                switch (entry.State)
                {
                    case EntityState.Added:
                        // Perform custom 'add' logic here
                        break;
                    case EntityState.Modified:
                        // Perform custom 'update' logic here
                        break;
                    case EntityState.Deleted:
                        // Perform custom 'delete' logic here
                        break;
                }
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...