【问题标题】:How to do CRUD Update in Entity (.NET 4.0)如何在实体中进行 CRUD 更新(.NET 4.0)
【发布时间】:2015-10-31 03:36:02
【问题描述】:

我正在关注这个教程http://www.codeproject.com/Articles/739164/Entity-Framework-Tutorial-for-Beginners

它似乎适合我们的 VB.NET 4.0 WinForms 应用程序。但我对更新部分感到困惑。

基本上我可以很好地完成创建和读取部分,但不能更新。

这是我的插入/创建代码。

Private Sub btnInsert_Click(sender As System.Object, e As System.EventArgs) Handles btnInsert.Click
    Dim db = New MyEntities
    Dim objEmp As Employee
    objEmp = PopulateEmployeeFromTextboxes() ' this does things like objEmp.Firstname = txtFirstName.text

    db.Employees.AddObject(objEmp)
    db.SaveChanges()
    MessageBox.Show("Insert/Update success!")

End Sub

读取的代码是这样的 - 它是一个按钮单击,并且有一个下拉列表来选择员工。一旦员工被选中,文本框(即 txtFirstName)就会从数据库中的数据中更新。到目前为止一切顺利,但我不确定如何获取现有记录并更新它。

Private Sub btnSelect_Click(sender As System.Object, e As System.EventArgs) Handles btnSelect.Click
    Dim db = New MyEntities
    Dim empQuery = From emp In db.Employees Select emp

    Dim empList As List(Of Employee) = empQuery.ToList


    cbEmployee.DataSource = empList
    cbEmployee.DisplayMember = "FirstName"
End Sub

【问题讨论】:

    标签: vb.net entity-framework .net-4.0


    【解决方案1】:

    在挖掘源代码时找到了答案,就是这样。基本上更新时使用 LINQ 从数据库中检索对象,更新对象中的值,然后提交更改。

      If (Not String.IsNullOrEmpty(selEmployee.EmpId)) Then ' UPDATE
            Dim empId As Int32 = Convert.ToInt32(selEmployee.EmpId)
            Dim empQuery = From emp In db.Employees
                           Where emp.EmpId = empId
                           Select emp
            objEmp = empQuery.Single()
    
            objEmp.HREmpId = txtHREmpId.Text
            objEmp.FirstName = txtFirstName.Text
            objEmp.LastName = txtLastName.Text
            objEmp.Address = txtAddress.Text
            objEmp.City = txtCity.Text
    
        Else
    
            objEmp = PopulateEmployeeFromTextboxes() ' this does things like objEmp.Firstname = txtFirstName.text
            db.Employees.AddObject(objEmp)
        End If
    
        db.SaveChanges()
        RefreshData()
        selEmployee = Nothing
    

    【讨论】:

      猜你喜欢
      • 2015-12-13
      • 1970-01-01
      • 1970-01-01
      • 2011-04-05
      • 1970-01-01
      • 2011-02-12
      • 2012-08-15
      • 1970-01-01
      • 2017-07-04
      相关资源
      最近更新 更多