VS2013,代码首先是EF6,SQL数据库,VB
我定义了以下类:
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数据表时,我看到:
为了做一些简单的事情,如显示所有答案的列表及其父问题,我需要检索显然在表格中的值,但我不了解如何编码。因为它在技术上不属于班级的财产,所以我不能直接要求它。如何检索该值?
我想知道检索的方式是否在源代码(包括VB)和视图代码中都有效,这意味着Razor。
答案 0 :(得分:0)
由于您在qAnswer
上为Question
创建了导航属性,因此实体框架在Question
上创建了一个隐含的外键,用于存储关系qAnswer
。这会导致您在数据库表中看到Question_QuestionID
属性。但是,由于这是一个隐式属性,因此无法在代码中直接访问其值。您有两种选择,您可能希望实际执行这两种选择。
将引用属性添加到qAnswer
。如果您实际上并不真正关心相关的问题ID,而只是希望能够自己解决问题,那么您可以通过引用属性来实现。只需将以下内容添加到qAnswer
:
Public Property Question As Question
如果你想要id本身,那么你需要一个属性来qAnswer
来存储它。类似的东西:
Public Property QuestionID As Integer
按照惯例,实体框架会将此识别为关系的外键属性并相应地使用它。添加此属性后,您需要运行迁移才能使其生效。