Можно ли объединить два объекта и связать результат с DataGridView таким образом, чтобы изменения DataGridView могли быть применены к базе данных? - PullRequest
0 голосов
/ 04 ноября 2018

Я новичок в Entity Framework. Мне нужно показать результат двух объединенных таблиц в DataGridView и обновить базу данных, когда пользователь отредактировал данные.

Без EF я обычно заполняю набор данных и назначаю его свойству DataSource таблицы данных и вручную пишу UpdateCommand. Но не знаю, как это сделать с EF.

Вот как я сейчас это реализую:

Dim Query2 = From Product In db.Products
                 Join User In db.Users
                     On User.Id Equals Product.Owner.Id
                 Select New With {
                     Product.Id,
                     Product.Title,
                     User.UserName
                    }

DataGridView2.DataSource = Query2.ToList

1 Ответ

0 голосов
/ 04 ноября 2018

Вот пример типа класса, который я предложил:

Public Class UserProduct

    Private user As User
    Private product As Product

    Public Property UserName As String
        Get
            Return user.UserName
        End Get
        Set
            user.UserName = value
        End Set
    End Property

    Public Property ProductId As Integer
        Get
            Return product.Id
        End Get
        Set
            product.Id = value
        End Set
    End Property

    Public Property ProductTitle As String
        Get
            Return product.Title
        End Get
        Set
            product.Title = value
        End Set
    End Property

    Public Sub New(user As User, product As Product)
        Me.user = user
        Me.product = product
    End Sub

End Class

Как видите, свойства просто передают данные в соответствующие свойства внутренних объектов, а не сохраняют их напрямую.

Ваш запрос LINQ станет:

Select New UserProduct(user, product)
...