2014-08-05 2 views
1

새 하위 레코드를 삽입하는 가장 좋은 방법은 무엇입니까? Add() 또는 InsertOnSubmit()을 사용 하시겠습니까? 접근 방식에 차이가 있습니까?LINQ to SQL : InsertOnSubmit() vs Add()

InsertOnSubmit() expamle :

using(DataContext db = new DataContext()) 
{ 
    Parent p = db.Parents.Where(q=>q.ID==SomeID).SingleOrDefault(); 
    Child c = new Child(); 
    c.ForeignKeyID = p.ID; 
    db.InsertOnSubmit(c); 
    db.SubmitChanges(); 
} 

Add() expamle :

using(DataContext db = new DataContext()) 
{ 
    Child c = new Child(); 
    c.ForeignKeyID = SomeID; 
    db.InsertOnSubmit(c); 
    db.SubmitChanges(); 
} 

이 방법 : 이미 부모 ID를 가지고 있기 때문에

using(DataContext db = new DataContext()) 
{ 
    Parent p = db.Parents.Where(q=>q.ID==SomeID).SingleOrDefault(); 
    Child c = new Child(); 
    p.Add(c); 
    db.SubmitChanges(); 
} 
+0

잘 당신과 당신의 코드는 무엇입니까? –

+0

'Parent.Add'는 어떻게 정의되어 있습니까? – MarcinJuraszek

+1

@MarcinJuraszek, OP가 오타를 만든 것처럼 보입니다. [EntityCollection.Add] (http://msdn.microsoft.com/en-us/library/bb351713%28v=vs.110%29.aspx) – Andrei

답변

2

,이 작업을 수행하는 것이 더 효율적이 될 것입니다 먼저 부모를 검색하지 않고 새 객체를 찾기 위해 객체 추적에 의존합니다. tem.