2

我想检索每个列名和数据类型,然后检查列是否是外键,然后查询该关系的键表!!!可以做吗??我用谷歌搜索了 3 天,我知道我必须使用映射模型或反射或两者,但我做不到。

我将简化我需要的假设: TABLE1 hase 外键(COL3)指的是 TABLE0 中的主键(COL1):

  1. 迭代 TABLE1 列检查每个列是否是外键(也获取其数据类型)

  2. 获取关系以确定关联表(TABLE0)

  3. 检索主键表 (TABLE0)

4

1 回答 1

1

我知道了,我做了一个函数,返回每个外键的类型和相关的表类类型

Private Function GetForeignKeyTables(ByVal myTableType As Type) As List(Of myForeignKeys)

    Dim myDx = New Tester.DataClasses1DataContext
    Dim mymodel As New AttributeMappingSource

    Dim myAsociations = mymodel.GetModel(GetType(DataClasses1DataContext)).GetTable(myTableType).RowType.Associations

    Dim asc = From m In myAsociations Where m.IsForeignKey
               Select New myForeignKeys With {.KeyDataType = m.ThisKey.First.DbType, .RelatedTableType = m.OtherType}

    Return asc.ToList

End Function

Private Class myForeignKeys
    Property KeyDataType As String
    Property RelatedTableType As MetaType

End Class 

但我仍然需要从那些相关表中检索数据。

我的意思是如何从其 MetaType 变量创建类的实例?

于 2013-02-01T22:04:27.007 回答