簡體   English   中英

帶有WPF的EntityFramework6更新

[英]EntityFramework6 with WPF update

我有一個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'屬性。 來源= EntityFramework

我是否正確使用EF? 有沒有更好的方法將上下文綁定到表單並處理更新?

您在技術上正確使用了EF,但從設計的角度來看,效果不是很好。

從數據庫的角度來看,您所獲得的異常意味着您正在嘗試向作業實體傳遞一些非法的數據(例如DateTime不適合datetime DB類型, DateTime不適合datetime DB類型,非null列為null,長度超過maxlength的字符串等等。)。

因此,您需要查看異常詳細信息,並找出導致問題的特定屬性,並更正傳遞給它的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM