2012-11-06 45 views
3

我正在用C#,.NET Framework 4.0開發一個WCF JSon Web服務,使用Entity Framework來訪問數據庫。如何使用EF將對象保存到數據庫並獲取從數據庫創建的主鍵?

我必須創建一個新的EReportDB.EReport對象,填充它,將其保存到數據庫並獲得其新的pk EReportDb.Ereport.eReportId

這是我的代碼,但我不知道如何做到這一點:

public bool SaveEReport(EReportContract eContractReport) 
    { 
     if (eContractReport == null) 
      throw new ArgumentNullException("eContractReport", "SaveEReport: eReport is null"); 

     using (EReportDB.EReportEntities context = new EReportDB.EReportEntities()) 
     { 
      EReportDB.EReport eReport = new EReportDB.EReport(); 
      eReport.orderId = eContractReport.orderId; 
      eReport.timeIn = DateTime.Parse(eContractReport.timeIn, new CultureInfo("en-GB", false)); 
      eReport.timeOut = DateTime.Parse(eContractReport.timeOut, new CultureInfo("en-GB", false)); 
      eReport.isProducFact = eContractReport.isProducFact; 
      /* 
       ..snip.. 
      */ 
      eReport.olPkSizeRs_ = eContractReport.olPkSizeRs; 
      eReport.olPkWeightRs = eContractReport.olPkWeightRs; 
     } 
     return false; 
    } 

我怎麼能這樣做?

回答

2
int id = 0; // assuming the datatype for eReportId is int 

using (EReportDB.EReportEntities objectContext = new EReportDB.EReportEntities()) 
{ 
    EReportDB.EReport eReport = new EReportDB.EReport(); 
    eReport.orderId = eContractReport.orderId; 
    eReport.timeIn = DateTime.Parse(eContractReport.timeIn, new CultureInfo("en-GB", false)); 
    eReport.timeOut = DateTime.Parse(eContractReport.timeOut, new CultureInfo("en-GB", false)); 
    eReport.isProducFact = eContractReport.isProducFact; 
    /* 
    ..snip.. 
    */ 
    eReport.olPkSizeRs_ = eContractReport.olPkSizeRs; 
    eReport.olPkWeightRs = eContractReport.olPkWeightRs; 

    objectContext.AddObject(eReport); // method to insert the entity 
    objectContext.SaveChanges(); 
    id = eReport.eReportId; 

    transaction.Complete(); 
} 

id是插入記錄的PK。

1

EF已經爲您填滿了。 只需撥打

context.AddObject(eReport); 
context.Save(); 

using塊的最後,你會發現在eReport.eReportId您的鑰匙。

+2

他們必須將其實際添加到上下文中,首先...但仍然有幫助。 +1。 –

相關問題