Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.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 在EF中,如何对类进行编码以访问外键?_Vb.net_Entity Framework_Entity Framework 6 - Fatal编程技术网

Vb.net 在EF中,如何对类进行编码以访问外键?

Vb.net 在EF中,如何对类进行编码以访问外键?,vb.net,entity-framework,entity-framework-6,Vb.net,Entity Framework,Entity Framework 6,EF 6,代码优先技术 两类定义为: Public Class SqlLayerTypeSet Public Overridable Property SqlLayerTypeSetID As Integer Public Overridable Property Name As String Public Overridable Property Desc As String Public Property ConferenceTypes As New List(Of SqlC

EF 6,代码优先技术

两类定义为:

Public Class SqlLayerTypeSet
  Public Overridable Property SqlLayerTypeSetID As Integer
  Public Overridable Property Name As String
  Public Overridable Property Desc As String
  Public Property ConferenceTypes As New List(Of SqlConferenceType)
End Class

Public Class SqlConferenceType
  Public Property ID As Integer
  Public Property Name As String
  Public Property Desc As String
End Class
设定种子后,表分别如下所示:

我应该向类SqlConferenceType添加什么,以便访问现有外键SqlLayerTypeSet\u SqlLayerTypeSetID,该外键指向SqlConferenceType所属的SqlLayerTypeSet

当我添加它应该是什么时,是否需要新的迁移

我认为EF允许您使用一种约定在类中定义属性,该约定只允许您访问外键,但实际上不会更改表定义。我尝试向类添加属性的方式实际上是在表中添加另一列,而我真正想做的就是访问EF代码首先创建的列

我知道这是一个基本的问题,但我似乎找不到正确的答案,所以这篇文章向我解释了这一点

在首次发布后添加:

这是我添加的一行,用于添加对父级的访问:

Public Overridable Property SqlLayerTypeSet As SqlLayerTypeSet
但如果我尝试为父项的键添加特定属性,例如:

Public Property SqlLayerTypeSetID as Integer

这将创建额外的列。在这种情况下,我可以添加到类SqlConferencetype中的唯一属性是导航属性,并且我必须使用导航检索外键值,而不是定义一个只保存外键值的属性?

fyi在您发布此内容时添加了我的额外内容。我会研究你发布的内容。谢谢。看起来我有一部分是这样的。太棒了,只是想让你知道这个问题没有得到很多的意见,因为它被标记为vb.net。如果您能够用c编写代码来提问,然后返回比较。这会有很大帮助
Public Class SqlLayerTypeSet
  Public Overridable Property SqlLayerTypeSetID As Integer
  Public Overridable Property Name As String
  Public Overridable Property Desc As String
  <ForeignKey("SqlConferenceType")>
  Public Overridable Property SqlConferenceTypeID as Integer 'Foreign key property
  Public Overridable Property ConferenceTypes As New List(Of SqlConferenceType) 'Relationship property
End Class


Public Class SqlConferenceType
  Public Property ID As Integer
  Public Property Name As String
  Public Property Desc As String
  Public Overridable Property SqlLayerTypeSet as SqlLayerTypeSet 'Relationship property
End Class