EF получает текущий ObjectContext - PullRequest
1 голос
/ 26 марта 2012

Мне нужно получить текущий контекст с учетом сущности

Я нашел эту старую статью из 2009

http://blogs.msdn.com/b/alexj/archive/2009/06/08/tip-24-how-to-get-the-objectcontext-from-an-entity.aspx

учитывая, что сейчас мы твердо находимся в 2012 году, есть ли другой путь?

ОБНОВЛЕНИЕ - вот некоторые подробности о том, где это требуется

Таблица1 - в основе схемы в форме звезды Теги nvarchar (300) Idx identity int

Таблица2 - Ссылка на теги TagID личность int TagText nvarchar (50)

Таблица 3 - Отношение между таблицей 1 и таблицей 2 IDX FK TagID FK

В событии Context.SavingChanges () для Table1 теги анализируются и сохраняются в Таблице 2, а отношения добавляются в Таблицу 3 с использованием контекста из Таблицы 1

.

Приветствуются любые рекомендации по улучшению этого положения.

Ответы [ 2 ]

1 голос
/ 27 марта 2012

Если вы находитесь в обработчике событий SavingChanges, вам не нужно получать контекст от объекта, а скорее отправителем объекта является ObjectContext.Это подходящее место, чтобы получить контекст в таком сценарии.Например:

public void context_SavingChanges(object sender, EventArgs e)
{
    ObjectContext context = sender as ObjectContext;
    // Do whatever you need to do...
}
0 голосов
/ 26 марта 2012

В статье показано, как получить из IEntityWithRelationships, это правда, но если уд. Для текущего контекста из имени сущности не думайте, что вы можете сделать .... Возможно, получите EntityContainerName:

public static string GetEntityContainerName(EntityObject entity)
{
        string entityContainerName = entity.EntityKey.EntityContainerName;
        return entityContainerName;
}

Если вам нужно повторно использовать текущий контекст, вам нужно передать это как параметр в вашем методе.

привет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...