C# 数据库实体框架并发更新时的分页符
伙计们,我使用的是EF4.1,当10多个用户试图同时更新DB时,我遇到了一个奇怪的问题,页面上说OBJECT REFERENCE未设置为OBJECT的实例。然而,如果有3-4个用户同时进行更新,它就可以正常工作。下面是我更新数据库的代码:C# 数据库实体框架并发更新时的分页符,c#,asp.net,entity-framework,concurrency,sql-update,C#,Asp.net,Entity Framework,Concurrency,Sql Update,伙计们,我使用的是EF4.1,当10多个用户试图同时更新DB时,我遇到了一个奇怪的问题,页面上说OBJECT REFERENCE未设置为OBJECT的实例。然而,如果有3-4个用户同时进行更新,它就可以正常工作。下面是我更新数据库的代码: private void UpdateBuilding(BuildingDetails buildingDetail, int homePolicyID) { //update building details HomePolicyItems
private void UpdateBuilding(BuildingDetails buildingDetail, int homePolicyID)
{
//update building details
HomePolicyItems_ValuablesController homePolicyItems_ValuablesController = new HomePolicyItems_ValuablesController();
var homeItemValuablesController = new HomeItemValuablesController();
HomeItems homeItem_BuildingDetails = homeItemsController.GetBuildingByID(buildingDetail.intID); // homeItemsController is instantiated at class level
var hpi = homePolicyItemsController.GetByHomeItemId(buildingDetail.intID); // homePolicyItemsControlleris instantiated at class level
var hpi_valList = homePolicyItems_ValuablesController.GetByHomePolicyItemsId(hpi.intID);
foreach (var hpi_val in hpi_valList)
{
var valuable = homeItemValuablesController.GetById(hpi_val.intValuableID.GetValueOrDefault());
homeItemValuablesController.Delete(valuable);
homePolicyItems_ValuablesController.Delete(hpi_val);
}
homeItem_BuildingDetails.intID = buildingDetail.intID;
homeItem_BuildingDetails.intAddressID = buildingDetail.AddressID;// = addressController.Add(address);
homeItemsController.Update(homeItem_BuildingDetails);
}
更新方法定义
public bool Update(HomeItems homeItems)
{
if (homeItems == null)
{
throw new ArgumentNullException("vehicleMake");
}
HomeItems savedHomeItems = null;
try
{
savedHomeItems = _Operations.Update(homeItems);
_Operations.SaveChanges();
}
catch (Exception ex)
{
LoggingController.LogErrorMessage("HomeItemsController-Failed to update HomeItems with ID " + homeItems.intID.ToString());
ExceptionManager.ExceptionMessage = "Could not Update records for ID: " + homeItems.intID.ToString();
return false;
}
return savedHomeItems != null;
}
_操作只是我的上下文类的一个对象
有人能告诉我问题和解决方案吗?处理好数据上下文对象,放入using语句中,应该很好谢谢@humayun。现在似乎在工作。