大佬教程收集整理的这篇文章主要介绍了c# – ObjectStateManager不包含ObjectStateEntry,它引用了类型的对象,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
int apId = Convert.ToInt32(request.QueryString["ApplicationID"]); ApplicationBLL objGetApplication = new ApplicationBLL(); Appdec.YEP.businessEntities.Application objApplication = objGetApplication.GetApplicationByApplicationID(apId); objApplication.Status = (ddlStatus.SELEctedValue == "0" ? false : truE); new ApplicationBLL(new Appdec.YEP.DataAccessLayer.DatabaseContext()).updateApplication(objApplication);
现在商务逻辑的更新方法是
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.update,truE)] public void updateApplication(Application updatedApplication) { // Validate Parameters if (updatedApplication == null) throw (new ArgumentNullException("updatedApplication")); // Validate PriMary key value if (updatedApplication.ApplicationID.IsInvalidKey()) BusinessLayerHelper.ThrowErrorForInvalidDataKey("ApplicationID"); // Apply business rules OnApplicationSaving(updatedApplication); OnApplicationupdating(updatedApplication); //attaching and making ready for parsistance if (updatedApplication.EntityState == EntityState.Detached) _DatabaseContext.Applications.Attach(updatedApplication); _DatabaseContext.objectStateManager.ChangeObjectState(updatedApplication,System.Data.EntityState.Modified);//this line throws the error //ObjectStateManager does not contain an ObjectStateEntry with a reference to an object of type int numberOfAffectedRows = _DatabaseContext.SaveChanges(); if (numberOfAffectedRows == 0) throw new DatanotupdatedException("No application updated!"); //Apply business workflow OnApplicationupdated(updatedApplication); OnApplicationSaved(updatedApplication); }
也改变
if (newApp .EntityState == EntityState.Detached) _DatabaseContext.Applications.Attach(newApp );
至
var newApp = Application (); //Copy all propery of updatedApplication to newApp here if (newApp .EntityKey == null || newApp .EntityKey.Istemporary) { _DatabaseContext.Applications.AddObject(newApp ); } else { _DatabaseContext.Applications.Attach(newApp ); } _DatabaseContext.objectStateManager.ChangeObjectState(newApp,System.Data.EntityState.Modified);
以上是大佬教程为你收集整理的c# – ObjectStateManager不包含ObjectStateEntry,它引用了类型的对象全部内容,希望文章能够帮你解决c# – ObjectStateManager不包含ObjectStateEntry,它引用了类型的对象所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。