Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework Silverlight 4实体框架问题_Entity Framework_Silverlight 4.0_Wcf Ria Services - Fatal编程技术网

Entity framework Silverlight 4实体框架问题

Entity framework Silverlight 4实体框架问题,entity-framework,silverlight-4.0,wcf-ria-services,Entity Framework,Silverlight 4.0,Wcf Ria Services,我已经用Silverlight和RIA服务创建了一个示例应用程序。我正在使用entity framework进行CRUD操作,但它不适用于插入操作,出现以下异常,“提交操作验证失败。有关详细信息,请检查EntityInError中每个实体的entity.ValidationErrors。”我没有应用任何验证,但不知道错误是如何发生的。 我已经测试过,当我创建DB entity的对象并为其赋值,然后通过调用object.SaveChages()进行保存时,它工作正常。但其默认方法不起作用。感谢您的

我已经用Silverlight和RIA服务创建了一个示例应用程序。我正在使用entity framework进行CRUD操作,但它不适用于插入操作,出现以下异常,“提交操作验证失败。有关详细信息,请检查EntityInError中每个实体的entity.ValidationErrors。”我没有应用任何验证,但不知道错误是如何发生的。 我已经测试过,当我创建DB entity的对象并为其赋值,然后通过调用object.SaveChages()进行保存时,它工作正常。但其默认方法不起作用。感谢您的帮助


谢谢

您能够深入了解验证错误吗?事实上,我在12月份的MSDN杂志Data Points上有一篇关于这一点的文章,但我打赌你不想等待,对吧?:)


即使您没有应用任何特定的验证,EF仍会检查外键约束之类的内容。如果你能看到错误是什么,这将最终有助于解决你的问题。调试到异常中。查看是否有DbEntityValidationException可用…可能在innerexceptoin中。DbEntityValidationException将有一个或多个EntityValidationError。每个实例都包含一个实例中发现的所有错误的列表。这意味着一次只展开一个EntityValidationErrors项,并查看其中包含的ValidationError项。

您能够深入查看验证错误吗?事实上,我在12月份的MSDN杂志Data Points上有一篇关于这一点的文章,但我打赌你不想等待,对吧?:)


即使您没有应用任何特定的验证,EF仍会检查外键约束之类的内容。如果你能看到错误是什么,这将最终有助于解决你的问题。调试到异常中。查看是否有DbEntityValidationException可用…可能在innerexceptoin中。DbEntityValidationException将有一个或多个EntityValidationError。每个实例都包含一个实例中发现的所有错误的列表。这意味着一次展开一个EntityValidationErrors项,并查看其中包含的ValidationError项。

SubmitOperation回调具有一个
EntitiesInError
属性,您可以使用该属性对实体进行迭代。这是获得“真实”错误的方法

以下是我必须向用户展示错误的方法

public static bool WasSubmittedOK(SubmitOperation so, string errorMessageHeader, out string errorMessage)
{
    errorMessage = string.Empty;
    if (!so.HasError)
        return true;

    so.MarkErrorAsHandled();

    errorMessage = "An unknown error has occurred";
    if (so.EntitiesInError.Count() > 0)
    {
        StringBuilder builder = new StringBuilder();
        builder.AppendFormat("{0}\r\n", errorMessageHeader);
        foreach (Entity item in so.EntitiesInError)
        {
#if DEBUG
            builder.AppendFormat("\r\nFor {0}", item.GetType());
#endif
            foreach (ValidationResult error in item.ValidationErrors)
            {
                builder.AppendFormat("\r\n- {0}", error.ErrorMessage);
                Debug.WriteLine(string.Format("Error in {0}:'{1}'", string.Join(",", error.MemberNames.ToArray()), error.ErrorMessage));
            }
        }
        errorMessage = builder.ToString();
    }
    else if (so.Error != null) { errorMessage = so.Error.Message; }

    return false;
}

SubmitOperation回调具有一个
EntitiesInError
属性,您可以使用该属性迭代实体。这是获得“真实”错误的方法

以下是我必须向用户展示错误的方法

public static bool WasSubmittedOK(SubmitOperation so, string errorMessageHeader, out string errorMessage)
{
    errorMessage = string.Empty;
    if (!so.HasError)
        return true;

    so.MarkErrorAsHandled();

    errorMessage = "An unknown error has occurred";
    if (so.EntitiesInError.Count() > 0)
    {
        StringBuilder builder = new StringBuilder();
        builder.AppendFormat("{0}\r\n", errorMessageHeader);
        foreach (Entity item in so.EntitiesInError)
        {
#if DEBUG
            builder.AppendFormat("\r\nFor {0}", item.GetType());
#endif
            foreach (ValidationResult error in item.ValidationErrors)
            {
                builder.AppendFormat("\r\n- {0}", error.ErrorMessage);
                Debug.WriteLine(string.Format("Error in {0}:'{1}'", string.Join(",", error.MemberNames.ToArray()), error.ErrorMessage));
            }
        }
        errorMessage = builder.ToString();
    }
    else if (so.Error != null) { errorMessage = so.Error.Message; }

    return false;
}