如何检索指向 child 的 parent 的 ID?

How do I retrieve the ID of a parent that points to a child?

VS2013,代码优先 EF6,SQL 数据库,VB

我定义了以下 classes:

Public Class Question
  Public Property QuestionID As Integer
  Public Property Text As String
  Public Property Type As qType
  Public Property PossibleAnswers As New List(Of qAnswer)
End Class

Public Class qAnswer
  Public Property qAnswerID As Integer
  Public Property Text As String
End Class

当我查看在 SQL 服务器中创建的 qAnswer 数据 table 时,我看到:

为了做一些像显示所有答案及其 parent 问题这样简单的事情,我需要检索显然在 table 中的值,但我不明白如何编码。由于它在技术上不是 class 的 属性,所以我不能直接调用它。我如何检索该值?

我想知道检索方式是否适用于源代码(即 VB)和视图代码(即 Razor)。

因为您在 Question 上创建了 属性 到 qAnswer 的导航,Entity Framework 在 qAnswer 上创建了到 Question 的隐式外键存储关系。这会导致您在数据库中看到 Question_QuestionID 属性 table。但是,由于这是一个隐含的 属性,因此无法在代码中直接访问它的值。你有两个选择,你可能想同时做这两个选择。

  1. 添加对 qAnswer 的引用 属性。如果您实际上并不明确关心相关的问题 ID,而只是想了解问题本身,那么您可以通过引用 属性 来实现。只需将以下内容添加到 qAnswer:

    Public Property Question As Question
    
  2. 如果你想要 id 本身,那么你需要一个 属性 到 qAnswer 来存储它。类似于:

    Public Property QuestionID As Integer
    

    按照惯例,Entity Framework 会将其识别为关系的外键 属性 并相应地使用它。添加此 属性 后,您需要 运行 迁移才能生效。