簡體   English   中英

如何在WCF服務中更新我的實體

[英]how I can update my entity in wcf service

在我的wcf服務中,我有以下方法作為“運營合同”:

public void Update(long id, string docNo, Nullable<int> item, string regNo, string payCode, string fixVar,
        string effectiveDate, string calcBase, Nullable<decimal> value, string costCenter, string subAcc,
        string docReference, string comment)
    {
        using (WFS006Entities dbu = new WFS006Entities())
        {
            NIOCPay_PayDetail doc = dbu.NIOCPay_PayDetail.Where(it => it.ID == id).SingleOrDefault();
            if (doc != null)
            {
                doc.DocNo = docNo;
                doc.Item = item.HasValue ? item.Value : 0;
                doc.RegNo = regNo;
                doc.PayCode = payCode;
                doc.FixVar = fixVar;
                doc.EffectiveDate = effectiveDate;
                doc.CalcBase = calcBase;
                doc.Value = value.HasValue ? value.Value : 0;
                doc.CostCenter = costCenter;
                doc.SubAcc = subAcc;
                doc.DocReference = docReference;
                doc.Comment = comment;
            }
            dbu.Entry<NIOCPay_PayDetail>(doc).State = System.Data.EntityState.Modified;
            dbu.NIOCPay_PayDetail.Attach(doc);                                
            dbu.SaveChanges();
        }
    }

文檔實體已更新,並且savechanges方法運行時沒有任何錯誤,但是沒有在數據庫中運行,我同時運行SQL事件探查器,但是我發現沒有任何問題,沒有sql或任何執行sql命令。 我該怎么辦?

我找到了自己的答案:

db.NIOCPay_PayDetail.Attach(doc);
db.ChangeTracker.Entries<NIOCPay_PayDetail>().FirstOrDefault().State =
                               System.Data.EntityState.Modified;
db.SaveChanges();

現在工作正常。

文檔已更新,並且savechanges方法運行無任何錯誤

這是否意味着您的更改已保存到數據庫?

如果是,則表明您的探查器設置不正確,並且可能是由於多種原因(例如您在錯誤的數據庫上運行),設置了一些不正確的參數等等。 如果否,那么您的陳述是錯誤的。 請診斷出問題所在

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM