Прикрепление сущностей к контекстам данных - PullRequest
0 голосов
/ 24 августа 2008

Можно ли в LINQ to SQL проверить, является ли объект уже частью контекста данных, прежде чем пытаться присоединить его?

Немного контекста, если это поможет ...

У меня есть этот код в моем global.asax в качестве вспомогательного метода. Обычно между запросами это не проблема. Но сразу после входа это вызывается более одного раза, и во второй раз я пытаюсь прикрепить объект Member к той же единице работы, где он был создан.

private void CheckCurrentUser()
{
    if (!HttpContext.Current.User.Identity.IsAuthenticated)
    {
        AppHelper.CurrentMember = null;
        return;
    }

    IUserService userService = new UserService();

    if (AppHelper.CurrentMember != null)
        userService.AttachExisting(AppHelper.CurrentMember);
    else
        AppHelper.CurrentMember = userService.GetMember(
            HttpContext.Current.User.Identity.Name,
            AppHelper.CurrentLocation);
}

Ответы [ 2 ]

0 голосов
/ 27 августа 2008

Вместо того, чтобы присоединяться к новому контексту данных, почему бы просто не запросить объект в новом текстовом контексте данных? Он считает, что это более надежная стратегия без сохранения состояния.

0 голосов
/ 24 августа 2008

Я считаю, что есть два способа сделать это.

DataContext.TableName.Contains(Item)

или мы используем поле id. Если элемент вставлен в базу данных, ему будет назначена строка.

if(Item.id == 0)
   DataContext.Insert(Item)
else
   DataContext.Update(Item)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...