一个人是否经历过以下情况? 用提及其他实体的田地对物体进行鉴定,会给你留下一个错误,表明现场存在,如果你会破坏方案,你会检查这些田地<>are/strong>有人居住。
现在,我曾两次遇到过这种情况,似乎有些问题涉及zy装问题,因为如果 la装不给答案。
我们有这种(简化)模式。
class Survey {
...
public bool Enabled {get; set;}
[Required]
public virtual OrganisationalUnit OU {get; set;}
...
}
如果我们只做<代码>Context.Surveys.Single(id)或。 调查。 如果(s => s.Id ==id)
, 更改<代码> 可使用<>条/条码>外地(或任何其他领域),并填写<条码>Context.SaveChanges(),则在10次中,有9次出现一个验证错误,即:OU
field is required and that it s not present。
添加<代码>。 问题已经解决,我认为问题已经结束。 尽管我昨天再次遇到以下法典的类似问题:
public class SurveyQuestionMultipleChoiceMultiSelect : SurveyQuestionMultipleChoice
{
public override IEnumerable<ValidationResult> validateValue(string _, IEnumerable<string> values)
{
int ivalue;
foreach( string value in values) {
bool success = int.TryParse(value, out ivalue);
if (!success || !Questions.Any(q => q.Id == ivalue))
yield return new ValidationResult(String.Format(GUI.error_multiplechoice_answer_not_element_of, ivalue));
}
}
}
这将在<编码> 问题代码>通过过滤器进行的检查时,将数值[4,5]的折旧率回升。 Id 4 and 5. 如果我暂停在<代码>>><>/代码>上错开一段时间,则事后将正确进行验证。
奇怪的是,我以前曾经历过这些错误,我没有更新任何图书馆或数据库软件。
这种情况令我感到惊讶,因为似乎我无法依靠拉齐·洛达来永远工作。 或者,我是否做过错?
这与EF 4.1 装上过滤器的儿童收集器,不为许多到many工作,但我无法解释如何在此适用。
Update1: The following exception would popup by following the steps provided in the first example:
System.Data.Entity.Validation.DbEntityValidationException was unhandled by user code
Message=Validation failed for one or more entities. See EntityValidationErrors property for more details.
Source=EntityFramework
StackTrace:
at System.Data.Entity.Internal.InternalContext.SaveChanges()
at System.Data.Entity.Internal.LazyInternalContext.SaveChanges()
at System.Data.Entity.DbContext.SaveChanges()
at Caracal.Application.Controllers.SurveyController.BulkEnable(SurveyBulkAction data) in C:UsersAlessandroCaracalDigEvalProject runkCaracalapplicationControllersSurveyController.cs:line 353
at lambda_method(Closure , ControllerBase , Object[] )
at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
InnerException:
<really-empty>
实现这一目标的守则(不是我个人写的,而是另一个团队成员):
bool option = data.option == "true";
// Check if all surveys can be set to the enabled state
foreach (int id in data.surveys)
{
Survey survey = Context.Surveys.SingleOrDefault(s => s.Id == id);
if (survey == null || !survey.CanAdministrate(Context))
return JsonResponse.Error(GUI.survey_enable_change_bulk_failed);
surveys.Add(survey);
}
// Enable/disable the selected surveys.
foreach (Survey survey in surveys)
survey.Enabled = option;
Context.SaveChanges();
<代码>数据代码>是一个标有客户的后数据。 survey.CanAdministrate(Context)
利用该背景阅读了亚洲开发银行组织单位的整个树木,以确定作用。