3

Entity Frameworkデータベースへのアクセスに使用する、C#、. NETFramework4.0を使用したWCFJSonWebサービスを開発しています。

新しい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;
    }

どうやってやるの?

4

2 に答える 2

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です。

于 2012-11-06T11:34:15.127 に答える
1

それはすでにEFによってあなたのために満たされています。電話するだけ

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

usingブロックの終わりに、キーがありeReport.eReportIdます。

于 2012-11-06T11:33:57.570 に答える