Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何从类型化的linq查询行中找到基础db表名?_Vb.net_Linq_Database Schema_Datacontext_Gettype - Fatal编程技术网

Vb.net 如何从类型化的linq查询行中找到基础db表名?

Vb.net 如何从类型化的linq查询行中找到基础db表名?,vb.net,linq,database-schema,datacontext,gettype,Vb.net,Linq,Database Schema,Datacontext,Gettype,在VB.net中,我希望从运行时类型Linq查询行确定底层数据库表名。我试图创建一个通用例程来删除列表框中的行,其对象值是查询行。我需要使用DeleteOnSubmit的实际表名。当然,如果我硬编码表名,它工作得很好,但这正是我试图避免的,这样我就可以对许多列表框使用单个例程。我只是简单地连接KeyUp事件。以下是我当前的代码: Private Sub LbxMenuItems_KeyUp(sender As Object, e As KeyEventArgs) Handles LbxMenuI

在VB.net中,我希望从运行时类型Linq查询行确定底层数据库表名。我试图创建一个通用例程来删除列表框中的行,其对象值是查询行。我需要使用DeleteOnSubmit的实际表名。当然,如果我硬编码表名,它工作得很好,但这正是我试图避免的,这样我就可以对许多列表框使用单个例程。我只是简单地连接KeyUp事件。以下是我当前的代码:

Private Sub LbxMenuItems_KeyUp(sender As Object, e As KeyEventArgs) Handles LbxMenuItems.KeyUp, LbxCategories.KeyUp
    Dim lbx = DirectCast(sender, ListBox)
    If e.KeyCode = Keys.Delete Then
        Dim msg = "Delete " & lbx.SelectedItems.Count & " selected rows(s)?"
        If MsgBox(msg, MsgBoxStyle.YesNo + MsgBoxStyle.Exclamation) <> vbYes Then Exit Sub
        Dim lbxType As Type = lbx.SelectedItems(0).GetType
        For Each sel In lbx.SelectedItems
            dbh.MenuItems.DeleteOnSubmit(sel)    <--- "MenuItems" IS THE TBL NAME I NEED            Next
        dbh.SubmitChanges()
    End If
End Sub
例如: lbx.SelectedItems0.GetType生成全名DataAdmin.MenuCategory。 我要查找的表名是MenuCategories。dbh是dataContext限定符


我希望我能很好地解释这一点,以便有人能够提供帮助。谢谢大家!

我认为您要查找的表名取决于用户点击“删除”的列表框,对吗?那么,列表框LbxMenuItems与表MenuItems关联,而列表框LbxCategories与表MenuCategories关联?如果是这样的话,既然Sub很小,为什么不只拥有两个不同的Sub,其中一个处理LbxMenuItems.KeyUp,另一个处理LbxCategories.KeyUp?然后,如果需要,您甚至可以对它们进行更多的自定义,例如说Dim msg=Delete&lbx.SelectedItems.Count&selected rows from Menu Items。还是我遗漏了什么?

Hi@Andarta:谢谢你的回复。当然,我可以为所有10个左右的列表框设置一个sub,但这正是我想要回避的。此外,名单还在不断增加,解决这一问题将为今后更多的可能性打开大门。即使现在,我仍然可以自定义消息,如果需要,可以使用GetType.Name。获取基础表的名称是现在解决此问题的关键。但谢谢你的意见