2013-02-07 1 views
0

내가 리피터 통해 반복하고 C#을 내 DB에 업데이트 쿼리를 발사 나중에 내가 사용하는 새로 업데이트 된 유형에서 개체 유형을 할 때에LINQ - 투 - SQL 업데이트 DB 데이터

을하는 SqlCommand 해요을받지

Document d = (from c in db.Documents where c.Id = myID select c).First(); 

은 내가 사용하는 SqlCommand를 업데이트 된 필드가 여전히 null의 문서를 얻을 수 있지만, 내가 DB를 확인할 때, 필드가 올바른 값을 가지고있다.

거기에 SqlCommand 명령에서 엔티티 유형을 가져 오거나 Linq-To-Sql에서 업데이트 된 데이터를 가져 오는 방법이 있는지 확인하십시오.

이 작업을 수행하기 전에 db.savechanges()를 실행 해 보았지만 차이점은 없습니다.

편집 :

SqlCommand command = getCommand(type, field, item, nDocID, required); // commandText = "UPDATE Documents SET " + field + "[email protected]" + field + " WHERE DocumentID = " + id; " 



        if (command != null) 
        { 
         SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connString"].ConnectionString); 

         command.Connection = conn; 
         conn.Open(); 
         command.ExecuteNonQuery(); 
         conn.Close(); 
        } 
+0

업데이트 할 코드를 Google에 표시 할 수 있습니까? – Tabish

+0

은 sql 명령을 실행하는 행을 추가했습니다. – KristianMedK

+0

다른 사람들이 제안한대로 데이터 컨텍스트를 새로 고칠 수는 있지만 경험상 성능에 문제가 있습니다. Linq2Sql을 사용하여 직접 SQL 명령을 사용하여 데이터베이스 상호 작용을 수행하는 것이 나을 것입니다. – RobJohnson

답변

3

db.SaveChanges()를 적용 EF를 통해 변경하지 않았기 때문에 아무것도하지 않습니다. 변경 한 내용은 범위를 벗어난 내용입니다. DB 변수를 전역 적으로 선언하고 EF가 데이터를 캐시했다고 가정합니다. 대신 다음을 수행하십시오.

using(somethingEntities db = new somethingEntities()){ 
    Document d = (from c in db.Documents where c.Id = myID select c).First(); 
    // do something here 
}