Я пытаюсь обновить поле в таблице, используя следующий код Entity Framework, но он просто не изменит это поле. Это действительно расстраивает, поэтому я подумал, может ли кто-нибудь сказать мне, что я делаю неправильно?Обновление таблицы с использованием структуры сущности
default.aspx.vb:
Protected Sub btn_Save_Click(sender As Object, e As System.EventArgs) Handles btn_Save.Click
SaveNewsBox()
End Sub
Private Sub GetNewsBox()
Dim newsBox As GLC.Home = BLL.Homes.Homes.GetNewsBox()
If newsBox IsNot Nothing Then
txt_NewsBox.Text = newsBox.NewsBox
End If
End Sub
Private Sub SaveNewsBox()
Dim newsBox As New GLC.Home
newsBox.NewsBox = txt_NewsBox.Text
If BLL.Homes.Homes.Update(newsBox) Then
Master.AlertStyle = "alert-success"
Master.AlertMessage = "<i class=""fa fa-thumbs-o-up""></i> Meal details saved, <a href=""/secure/"">return to main menu.</a>"
Master.AlertVisible = True
Else
Master.AlertStyle = "alert-danger"
Master.AlertMessage = "<i class=""fa fa-thumbs-o-down""></i> Warning news box details could not be saved.</a>"
Master.AlertVisible = True
End If
End Sub
End Class
Homes.vb:
Imports DAL
Imports GLC
Namespace Homes
Public Class Homes
Public Shared Function GetNewsBox() As Home
Return MethodClasses.HomesHandler.GetNewsBox()
End Function
Public Shared Function Update(newsBox As Home) As Boolean
Return MethodClasses.HomesHandler.Update(newsBox)
End Function
End Class
End Namespace
HomesHandler.vb:
Imports GLC
Imports System.Linq.Dynamic
Namespace MethodClasses
Public Class HomesHandler
Public Shared Function GetNewsBox() As Home
Using context As New GLCContext
Try
Return context.Homes.Single()
Catch ex As Exception
Return Nothing
End Try
End Using
End Function
Public Shared Function Update(newsBox As Home) As Boolean
Dim newsBoxUpdated As Boolean = False
Using context As New GLCContext
Try
context.Homes.Attach(newsBox)
Dim entry = context.Entry(newsBox)
entry.State = EntityState.Modified
context.SaveChanges()
newsBoxUpdated = True
Catch ex As Exception
newsBoxUpdated = False
End Try
End Using
Return newsBoxUpdated
End Function
End Class
End Namespace
Ошибка? По крайней мере, вы, кажется, не предоставляете значение PK для newsBox или значение, всегда равное 0. – tschmit007
Если вы удалите попытку/улов из своей функции Update(), вы получите сообщение об ошибке? Кроме того, вы можете поделиться своей схемой? – theduck