Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.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
C# EntityFramework6与WPF更新_C#_Wpf_Entity Framework - Fatal编程技术网

C# EntityFramework6与WPF更新

C# EntityFramework6与WPF更新,c#,wpf,entity-framework,C#,Wpf,Entity Framework,我有一个EF6数据上下文,我正在使用下面的方法手动绑定到一个表单 private void GetJob(int i) { var context = new APIntegrationEntities(); var jb = context.Jobs.Find(i); //tJobName.AppendText(jb.JobName.ToString()); tId.Text = jb.Id.ToString(

我有一个EF6数据上下文,我正在使用下面的方法手动绑定到一个表单

  private void GetJob(int i)
    {
        var context = new APIntegrationEntities();

        var jb = context.Jobs.Find(i);



        //tJobName.AppendText(jb.JobName.ToString());
        tId.Text = jb.Id.ToString();
        tJobName.Text = jb.JobName;
        tSourceQuery.Text = jb.SourceQuery;
        tAPI.Text = jb.API;
        tConnectionString.Text = jb.ConnectionString;
        tSheetName.Text = jb.SheetName;
        tVersion.Text = jb.VersionName;


    }
我正在尝试更新以下内容:

 private void bSave_Click(object sender, RoutedEventArgs e)
    {
        var context = new APIntegrationEntities();

        var jb = context.Jobs.Find(Int32.Parse(tId.Text));

        jb.JobName = tJobName.Text;
        jb.SheetName = tSheetName.Text;
        jb.SourceQuery = tSourceQuery.Text;
        jb.ConnectionString = tConnectionString.Text;
        jb.VersionName = tVersion.Text;
        jb.Id = Int32.Parse(tId.Text);
        jb.API = null;    
        context.SaveChanges();




    }
但我有一个例外:

System.Data.Entity.Validation.DbEntityValidationException未处理 HResult=-2146232032 消息=一个或多个实体的验证失败。有关详细信息,请参阅“EntityValidationErrors”属性。 Source=EntityFramework


我是否正确使用EF?是否有更好的方法将上下文绑定到表单并处理更新?

您在技术上正确地使用了EF,但从设计角度来看不是很好

您得到的异常意味着您正试图从数据库角度数据传入一些非法的作业实体(例如
DateTime
不适合
DateTime
DB类型、非null列中的null、长度超过maxlength的字符串等)


因此,您需要查看异常详细信息,找出导致问题的特定属性,并更正传入的数据。

我认为它可能与ID有关。这是我的主键,在SQL Server数据库中,它被设置为标识字段,这意味着数据库处理插入。有我需要设置的属性吗?我试着将其从代码中排除,但这没有效果,因为它仍然在模型中。我阅读了绑定到WPF的内容-我这样做了,但仍然有错误。我进一步调试了一下,结果发现是一个XML字段导致了错误。都分类好了。