2012-12-31 2 views
3

EF를 처음 사용합니다. 데이터베이스에서 엔티티 모델을 만들었습니다.개체 목록을 Entity 데이터베이스에 추가하십시오.

난이 테이블 CurrencyMaster ([FromCurrency], [ToCurrency], [ActiveStatus])과 CurrencyConversion ([이 ID], [FromCurrency], [ToCurrency], [날짜], [CurrencyFactor])

은 내가 CurrencyMaster 레코드를 따라반복하고은 나에게 List<CurrencyRate> 개체를 줄 것입니다. 이 개체를 엔티티 데이터베이스에 추가하기 만하면됩니다.

는 내가 적절한 방법으로 동일 할 수있는 방법이

public DownloadStatus DownloadUpdateCurrency(DateTime toDate, DateTime fromDate) 
{ 
    CurrencyEntities db = new CurrencyEntities(); 
    var curMasters = db.CurrencyMasters.Where(x => x.ActiveStatus == 0); 
    foreach (var item in curMasters) 
    { 

     var curcRatesList = DownloadCurrencyRates(fromDate, toDate, 
              item.FromCurrency, item.ToCurrency); 

     //I know this is a bad code 
     curcRatesList.Select(x => 
           { 
            db.AddToCurrencyConversions(
            new CurrencyEntity.CurrencyConversion { 
             Date = x.date, 
             CurrencyFactor = x.value, 
             FromCurrency = item.FromCurrency, 
             ToCurrency = item.ToCurrency 
             } 
           ); 
            return true; 
           }); 
    } 
    db.SaveChanges(); 
    return DownloadStatus.DownloadSuccess; 
} 

같은 시도?
curcRatesList에 대해 반복하지 않고이 작업을 수행 할 수있는 방법이 있습니까?

.NET 3.5를 사용하고 EF 버전에 대해 확실하지 않습니다. 코드 실행을 시도하지 않았지만 (내가 다른 설정이 필요합니다), 그러나 제가하고있는 일이 정확하지 않을 것이라고 확신합니다. 그래서 여기에 게시 중입니다 ...

+0

이 방법으로 수행하려는 작업에 대한 개요를 제공 할 수 있습니까? 또는 무엇이해야합니까? 나는 논리를 따라갈 수 없다. – Kami

+0

@ 카미 : 내 질문 편집 – dotNETbeginner

답변

1

절차가 정확합니다. 단일 메서드 호출에서 전체 엔터티 목록을 추가 할 수있는 EF에는 대량 삽입 기능이 없습니다. 항목을 반복하여 하나씩 추가해야합니다. 보조 노트로

: 난 그냥 그 이상한 Select 트릭 대신 일반 foreach 루프을 사용합니다 (Select 방법을 오용하지만 작동합니다). 또는 curcRatesListList<T> 인 경우 Select 대신 List<T>Foreach 메서드를 사용할 수 있습니다.

+0

'List .Foreach'는 좋은 옵션입니다. – dotNETbeginner

관련 문제