2010-04-08 5 views
0

내 코드는 다음과 같습니다linq을 사용하여 엔티티를 sql로 업데이트하는 경우 먼저 첨부를 호출해야합니까?

Entity e = new Entity(); 

e.name = "..."; 
e.blah = 234; 

MyDb.UpdateEntity(e); 


public static void UpdateEntity(Entity e) 
{ 
    using(MyDatacontext dc = new MyDataContext()) 
    { 

      dc. ????????? 
    } 

} 

그래서 엔티티를 업데이트하려면 여기를해야합니까 무엇?

참고 : 여기 엔 엔티티가 있습니다. 프로젝트의 다른 요소입니다.

답변

3

정말 당신의 데이터 컨텍스트에 따라 달라집니다. 일반적으로 데이터베이스의 각 테이블에 대해 개체를 갖게됩니다. 따라서 예를 들어 주문 테이블이있는 데이터베이스를 사용하는 경우 DataContext에 Orders 개체가 있습니다 (테이블을 디자이너의 dbml 파일로 끌어서 만듭니다).

그래서 새로운 질서를 위해 다음을 수행 woud :

using (var ctx = new MyDataContext()) { 
    ctx.Orders.InsertOnSubmit(order); 

    ctx.SubmitChanges(); 
} 

그리고 주문이 클라이언트에 전달하고 THER 수정 저장을 수행

using (var ctx = new MyDataContext()) { 
    ctx.Orders.Attach(order, true); 

    ctx.SubmitChanges(); 
} 
+0

+1을 첨부하십시오. 나는 항상 그 사실을 잊어 버린다. – Mark

1
dc.GetTable<Entity>().InsertOnSubmit(e); 
dc.SubmitChanges(); 

http://msdn.microsoft.com/en-us/library/bb763516.aspx

+0

'dc.InsertOnSubmit (예) 'InsertOnSubmit' 연산이 Table 클래스의 메소드이기 때문에 유효하지 않습니다. 나는. 당신은'dc.Etities.InsertOnSubmit (e)'를 할 필요가있다. – AxelEckenberger

+0

@Obalix 네 .. 저도 그걸 보았습니다. 부스. :) – Mark

+1

@Obalix'dc.Entities'는 더 깨끗할 것입니다. 그러나 일반적인 저장소를 가지고있는 것이 좋기 때문에'GetTable '이 나에게 잘 맞습니다. – Mark

관련 문제