当我想保存SQL数据库中的更改时,一个或多个实体的验证失败

时间:2015-05-31 14:47:39

标签: c# sql-server wpf entity-framework

当我尝试使用Entity Framework保存数据库中的更改时出现此错误,这是我的代码:

public void AjoutDatePoint(DateTime date)
{
    int dateStamp = Convert.ToInt32((date - new DateTime(1970, 1, 1).ToLocalTime()).TotalSeconds);

    DataModel.TB_TA_RESULT result= new DataModel.TB_TA_RESULT();
    result.nDateTime = dateStamp;
    result.nUserIdn = 1;
    result.nShiftIdn = 3;

    SessionContext.DBContext.TB_TA_RESULT.Add(result);
    SessionContext.Save();
}

谢谢

1 个答案:

答案 0 :(得分:1)

当EF验证实体(在发布到数据库之前)以确保它遵守已配置的合同(最大长度,所需值等)时,会发生此错误。

因为您没有发布实体定义+ EF配置,所以我无法告诉您EF正在抱怨哪个属性。

但是你可以通过捕获异常(它将是DbEntityValidationException类型)然后检查异常上的EntityValidationErrors属性的内容来轻松地弄清楚它。从中您将获得非常具体的信息,告诉您哪些属性需要注意以及为什么。