Asp.net mvc 2 实体框架代码优先-更新功能失败

Asp.net mvc 2 实体框架代码优先-更新功能失败,asp.net-mvc-2,entity-framework-4,entity-framework-4.1,Asp.net Mvc 2,Entity Framework 4,Entity Framework 4.1,内部异常消息:发生引用完整性约束冲突:定义引用约束的属性值在关系中的主体对象和从属对象之间不一致 dynamic obj = ""; if (model.LoadResultCount!=0) { obj = new LoadManagementResultsCountUserSetting(); obj.ResultsCount = Convert.ToInt16(model.Loa

内部异常消息:发生引用完整性约束冲突:定义引用约束的属性值在关系中的主体对象和从属对象之间不一致

dynamic obj = "";
            if (model.LoadResultCount!=0)
            {
                obj = new LoadManagementResultsCountUserSetting();
                obj.ResultsCount = Convert.ToInt16(model.LoadResultCount);
                obj.Id = Convert.ToInt16(model.LoadResultCountId);
                //var loadManagementResultCount = ApplicationService.GetSettings<LoadManagementResultsCountUserSetting>(f => f.Id == model.LoadResultCountId).FirstOrDefault();
                //ApplicationService.Remove(loadManagementResultCount);
                SaveResultCountUserSettings(obj, model);

            }
            if (model.PlanningResultCount!=0)
            {
                obj = new PlanningManagementResultsCountUserSetting();
                obj.ResultsCount = Convert.ToInt16(model.PlanningResultCount);
                obj.Id = Convert.ToInt16(model.PlanningResultCountId);
                //var planningManagementResultCount = ApplicationService.GetSettings<PlanningManagementResultsCountUserSetting>().Where(f => f.Id == model.PlanningResultCountId).FirstOrDefault();
                //ApplicationService.Remove(planningManagementResultCount);
                SaveResultCountUserSettings(obj, model);
            }

   private void SaveResultCountUserSettings(dynamic obj, ResultCountViewModel model)
    {
        obj.IsEnabled = true;
        obj.IsPrimary = model.IsPrimary;
        obj.StartDate = DateTime.UtcNow;
        obj.ModifiedDate = DateTime.UtcNow;
        obj.ModifiedBy = AuthenticatedUser;
        ApplicationService.Save(obj);
    }

public void Save(BaseLogixSetting setting)
    {
        if (setting != null)
        {
            if (setting.Id > 0)
                SettingsRepository.Attach(setting);
            else
                SettingsRepository.Add(setting);

            Commit();
        }
    }
dynamic obj=”“;
if(model.LoadResultCount!=0)
{
obj=新的LoadManagementResultsCountUserSetting();
obj.resultCount=转换为16(model.LoadResultCount);
obj.Id=Convert.ToInt16(model.LoadResultCountId);
//var loadManagementResultCount=ApplicationService.GetSettings(f=>f.Id==model.LoadResultCountId).FirstOrDefault();
//ApplicationService.Remove(loadManagementResultCount);
SaveResultCountUserSettings(对象、模型);
}
if(model.PlanningResultCount!=0)
{
obj=新计划管理结果CountUserSetting();
obj.ResultsCount=Convert.ToInt16(模型规划结果计数);
对象Id=转换为16(模型规划结果计算);
//var planningManagementResultCount=ApplicationService.GetSettings()。其中(f=>f.Id==model.planningresultcount.FirstOrDefault();
//ApplicationService.Remove(计划管理结果帐户);
SaveResultCountUserSettings(对象、模型);
}
私有void SaveResultCountUserSettings(动态对象、ResultCountViewModel模型)
{
obj.IsEnabled=真;
obj.IsPrimary=model.IsPrimary;
obj.StartDate=DateTime.UtcNow;
obj.ModifiedDate=DateTime.UtcNow;
obj.ModifiedBy=认证用户;
ApplicationService.Save(obj);
}
公共作废保存(BaseLogixSetting设置)
{
如果(设置!=null)
{
如果(setting.Id>0)
设置存储。附加(设置);
其他的
SettingsRepository.Add(设置);
提交();
}
}

使用相同保存方法的两个型号为什么从一开始就使用
动态
而不是
BaseLogixSetting
?在这种情况下,我不确定EF是否能处理
obj.ModifiedBy=AuthenticatedUser
(我能在您的代码中找到的唯一关系)。