2011-01-07 4 views
0

'transactions'및 'transaction_lines'가있는 데이터베이스가 있습니다. 트랜잭션은 기본 공유 세부 사항을 가지며 트랜잭션 행은 트랜잭션을 구성하는 구성 요소의 값을 보유합니다. 전통적인 SQL에서는 SQL 트랜잭션을 사용할 것입니다 (죄송합니다. 지금은 모호한 단어가 있습니다 ...). 그런 다음 INSERT INTO Transaction ... 트랜잭션 테이블의 새 행에서 IDENTITY 키 값을 얻습니다. 트랜잭션 테이블의 ID 열을 외래 키로 사용하여 내 transaction_line 테이블에 삽입하십시오.SQL에 Linq를 사용하여 관련 항목 추가

linq로이를 수행하는 좋은 방법이 있습니까?

account_transaction ac = new account_transaction 
          { 
           transaction_date = DateTime.Now, 
           is_credit = isCredit, 
           account = (db.accounts.FirstOrDefault(a => a.account_id == accountid)) 
          }; 

db.AddToaccount_transaction(ac); 

db.SaveChanges(); 

나는 'AddToaccount_transaction (AC)'와 'db.SaveChanges()'inbetween 생각, 내 transaction_lines을 추가해야합니다

는 여기에 지금까지 무슨이다.

답변

1

transaction_line 개체를 만들고 외국 엔터티를 ac으로 설정하면됩니다. LINQ-to-SQL에서는 명시 적 키 대신 엔터티 개체를 사용합니다. 엔티티 개체를 ac 개체로 설정하면 레이어에서 키의 용도를 결정하고 설정하도록 지시합니다.

+0

감사! 그건 잘 작동하는 것 ... – Craig

1

위의 답변은 정확하지만 나는 그것을 TransactionScope에서 모두 감쌀 것입니다. 그런 식으로 쿼리의 일부가 실패하면 트랜잭션을 롤백합니다. 연결을 닫기 전에 scope.Complete() 메서드를 호출하는 것을 잊지 마십시오. http://msdn.microsoft.com/en-us/library/ms251686(VS.80).aspx

+0

고마워! 그럴거야. – Craig

관련 문제