2011-09-08 2 views
2

비즈니스 클래스가 있습니다. 이 비즈니스 클래스에서있다 :Linq 2 SQL : 웹 서비스를 통해 레코드 업데이트

  1. 컨텍스트는 (하면 .dbml를 통해) 데이터베이스에 액세스
  2. 어떤 방법

이 비즈니스 클래스의 SaveUser(User user) 방법은 웹 서비스에 의해 호출 할 수 있습니다. 이 메서드는 수정 된 User 개체를받습니다. 수신하는 매개 변수의 값에 따라 데이터베이스의 레코드를 업데이트 할 수 있습니까 (필드 값은 예상 값을가집니다)? 같은,

context.Users.Attach(user); 
context.SubmitChanges(); 

내가 마지막 줄없이 시도 ... 데이터베이스에 변화 :

나는이 시도했다.

아이디어가 있으십니까?

감사합니다,

업데이트 1

public class RightManager 
    { 
     private readonly DBDataContext dc; 

     public RightManager() 
     { 
      dc = new DBDataContext(); 
     } 

     public User GetUser(int id) 
     { 
      User user = dc.GetTable<User>() 
       .Where(x => x.Id == id && x.IsEnable == true) 
       .SingleOrDefault<User>(); 

      return user; 
     }      

     public void SaveUser(User user) 
     { 
      dc.Users.Attach(user); 
     } 

    } 
+0

일부 코드가 환영받을 것이며, 우리가 정말 코드를 보지 않고 잘못하고있는 것을 볼 수 없습니다. – Aidiakapi

+0

이 질문을 참조하십시오 : http://stackoverflow.com/q/1758214/31136 –

+0

@Aidiakapi 업데이트보기 1 –

답변

1

물론, 당신은 인수로받을 객체는 사용자 개체가 아닙니다. 컨텍스트 (일반적으로 ID로)에서 하나를 가져와 필요한 속성을 업데이트하고 제출해야합니다.

public void SaveUser (User user) { 
    var userToUpdate = context.Users.Where(u => u.Id == user.Id).Single(); 
    userToUpdate.FirstName = user.FirstName; 
    userToUpdate.LastName = user.LastName; 

    context.SubmitChanges(); 
} 
+0

물론 가능합니다. 하지만 이것보다 다른 방법은 없을까요? –

관련 문제