2009-09-03 3 views
0

Customers라는 테이블과 CustomerAddress라는 테이블이 있다고 가정 해 보겠습니다. 그런 다음 List<Address> 유형의 속성이 포함 된 Customer 개체가 있다고 가정 해 보겠습니다. 이 속성은 고객이 사용했을 수도있는 모든 다른 배송 주소 목록을 포함하므로 0 - n 개의 주소가 포함될 수 있습니다 (단순함을 위해 전체 주소가 포함 된 하나의 문자열). 이제 linq SQL 프로 시저를 사용하여이 두 테이블에로드 할 Customer 개체 컬렉션이 있습니다. Customers 테이블에는 ID 열이고 자동 증가해야하는 CustomerID라는 열이 있습니다. CustomerAddresses 테이블에는 고객을 테이블의 주소에 연결하는 CustomerID라는 열과 Address라는 열이 있습니다. 여기에 주요 어려움은 테이블에 목록을 추가하고 CustomerID 열을 일치시키는 방법을 찾는 것입니다. 고객을 업데이트 미리linq to sql을 사용하여 여러 테이블에 항목 추가

감사합니다,

밥 당신은 고객 행 (InsertOnSumbit)를 추가

답변

1

나는 이것이 당신이 필요하다고 생각합니다. 고객 개체에있는 속성을 CustomerAddresses라고하고 주소 목록을 보유합니다.

static void SaveCustomer(Customer customer) 
{ 
    using(var dc = new TestDC()) 
    { 
     dc.Customers.InsertOnSubmit(customer); 
     dc.SubmitChanges(); 

     foreach (CustomerAddress address in customer.CustomerAddresses) 
     { 
      address.CustomerId = customer.Id; 
      dc.CustomerAddresses.InsertOnSubmit(address); 
      dc.SubmitChanges() 
     } 
    } 
} 

예, 필수는 아니지만이 테이블 사이에 FK를 넣어야합니다.

+0

감사합니다. 이것이 내가 필요한 것이라고 생각합니다. 나는 그것을 시험해보고 올지도 모르는 질문을 추가 할 것이다. 다시 한번 감사드립니다. 밥 – Beaker

2

는 다음 SubmitChanges를 활성화() 함수는 새로 생성 된 ID와 삽입 된 개체.

using(var dc = new TestDC()) 
{ 
    var cust = new Customer(); 

    cust.Name = "Jack"; 

    dc.InsertOnSubmit(cust); 

    SubmitChanges(); // cust.Id will be updated with a new generated value 
} 

동의어 트랜잭션 지원을 위해이 코드를 TransactionScope로 묶을 수 있습니다.

즐기십시오.

+0

linq은 SQL에 어떤 열을 다른 테이블에 주소 문자열 목록을 넣을지 어떻게 알 수 있습니까? 두 테이블간에 외래 키를 설정해야합니까? – Beaker

+0

예제는 ID 기반 테이블에 새 행을 추가하는 것으로 구성됩니다. 목록을 SQL에서 열 유형으로 나타내지 않아야하므로 LINQ에서도 허용되지 않습니다. 2 개의 테이블 (Customer & CustomerAddresses)이 채워지는 CustomerBL이라는 BL 객체가 있어야합니다. CustomerBL은 CustomerAddresses 테이블에서 채울 수있는 주소 목록 (해당 열은 CustomerAddressId (PK int), CustomerId (PK int), Address (string))으로 구성됩니다. –

+0

아마 내 문제는 이러한 테이블과 비즈니스 계층 개체의 설정입니다. – Beaker

관련 문제