这个问题纯粹是概念性的! 以下代码运行正常,但我无法弄清楚如何。 。 的
我已经开始阅读实体框架概念,我目前正在使用位于here的信息和示例来构建我的第一个MVC项目。以下是该链接的代码示例:
Imports System.Collections.Generic
Imports System.Data.Entity
Namespace MyDataAccessDemo
Module Program
Sub Main()
Using context As New ProductContext()
Dim food As New Category With {.CategoryId = "FOOD"}
context.Categories.Add(food)
Dim cheese As New Product With {.Name = "Cheese"}
cheese.Category = context.Categories.Find("FOOD")
context.Products.Add(cheese)
context.SaveChanges()
End Using
End Sub
End Module
Public Class ProductContext : Inherits DbContext
Public Property Products As DbSet(Of Product)
Public Property Categories As DbSet(Of Category)
End Class
Public Class Product
Public Property ProductId As Integer
Public Property Name As String
Public Property Category As Category ' <-- Circular reference?
End Class
Public Class Category
Public Property CategoryId As String
Public Property Name As String
Public Property Products As ICollection(Of Product) ' <-- Circular reference?
End Class
End Namespace
所以,&#34;类别&#34;是一个班级&#34;产品&#34;是一个班级。 类别包含产品的集合,每个产品包含类别,其中包含其< 产品,每个产品包含类别,其中包含产品的集合。 。 。好吧,你明白了。
为什么这样做?这不应该导致某种循环引用吗?我认为该类别将包含产品ID,反之亦然,而不是对象本身。