Я довольно новичок в EDM, так что терпите меня. У меня есть форма Windows с DataGridView, которая связана с EDM, который я создал. Я понял, как обновить свои изменения, но когда пользователь создает новую строку, у меня возникает проблема.
Я пробовал множество способов и множество поисков в Google, но пока ничего не придумал.
Вот как загружаются данные:
Dim boilerID As Integer = DirectCast(ddlBoiler.SelectedValue, Integer)
Dim countryID As Integer = DirectCast(ddlCountry.SelectedValue, Integer)
Dim ratings = From r In _Context.Rating _
Where r.Boiler.Boiler_ID = boilerID _
And r.Country.Country_ID = countryID _
Order By r.Sequence _
Select r
RatingBindingSource.DataSource = ratings.ToList()
Кроме того, все, что я сейчас делаю для сохранения информации, это следующее:
Private Sub btnSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSave.Click
_Context.SaveChanges()
End Sub
Я хочу, чтобы пользователь мог использовать функцию «новой строки» сетки для добавления новых элементов в базу данных вместо того, чтобы нажимать кнопку и открывать новое диалоговое окно. Как это будет достигнуто?
Я могу включить некоторые методы, которые я пытался добавить для новых предметов, если кому-то нужно это увидеть.
Спасибо!
ОБНОВЛЕНИЕ: вот один из методов, которые я пытался добавить для новых объектов, и полученная ошибка:
For Each dgvr As DataGridViewRow In dgvRatings.Rows
If dgvr.DataBoundItem IsNot Nothing AndAlso CType(dgvr.DataBoundItem, Rating).Rating_ID <= 0 Then
Dim r As Rating = dgvr.DataBoundItem
r.Boiler = ddlBoiler.SelectedItem
r.Country = ddlCountry.SelectedItem
_Context.AddObject("Rating", r)
End If
Next
Ошибка (возникает при вызове _Context.SaveChanges ()): оператор обновления, вставки или удаления магазина затронул неожиданное количество строк (0). Объекты могут быть изменены или удалены с момента загрузки объектов. Обновите записи ObjectStateManager.