在我的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命令。我该怎么做呢?
答案 0 :(得分:1)
我找到了自己的答案:
db.NIOCPay_PayDetail.Attach(doc);
db.ChangeTracker.Entries<NIOCPay_PayDetail>().FirstOrDefault().State =
System.Data.EntityState.Modified;
db.SaveChanges();
现在它运作正常。
答案 1 :(得分:0)
文档更新和savechanges方法运行没有任何错误
是否意味着您的更改已保存到数据库?
如果是那么这意味着您的探查器设置不正确,可能是因为您在错误的数据库上运行等多种原因,您设置了一些不正确的参数等等。 如果否那么您的陈述是错误的。请诊断出问题在哪里