Как использовать имя таблицы в качестве переменной с сущностью? - PullRequest
0 голосов
/ 17 апреля 2019

В VB .net Я использую Entity Framework, у меня есть форма (frmAdd), содержащая DataGridView, источник данных которого:

DataGridView1.DataSource = myEntity.Genders.ToList

Я хочу сделать (Genders) переменную, которая будет похожа на эту:

DataGridView1.DataSource = myEntity.tblName.ToList

А вот мой код:

Public Class frmAdd

Dim myEntity As New HRDataEntities

Dim tblName As String

Private Sub frmAdd_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    DataGridView1.DataSource = myEntity.Genders.ToList

End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

       tblName = "Jobs"

Следующая строка в редакторе не принимается:

       DataGridView1.DataSource = myEntity.tblName.ToList

       DataGridView1.Refresh()

    End Sub

 End Class

1 Ответ

0 голосов
/ 17 апреля 2019

Вы можете использовать метод DbContext.Set для динамического получения DbSet. Но вместо того, чтобы передать это имя, вы должны назвать его с Type.

Dim entityType As Type

entityType = GetType(Jobs)
DataGridView1.DataSource = context.[Set](entityType).Cast(Of Object)().ToList()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...