2008-08-23 4 views
0

В 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); 
} 

ответ

0

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

DataContext.TableName.Contains(Item) 

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

if(Item.id == 0) 
    DataContext.Insert(Item) 
else 
    DataContext.Update(Item) 
0

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

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