2008-08-23 6 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에서 개체를 다시 쿼리하지 않는 이유는 무엇입니까? 더 신뢰할 수 있고 무국적 인 전략이라고 생각합니다.

관련 문제