我正在使用 EF5、Vb.net、AJAX (Javascript)、ASMX-Webservices 和 HTML 开发一个项目。
我的问题是我是否有(示例类):
Public Class Company
Public Property CompanyId As Integer
Public Property Name As String
Public Overridable Property Companytype As Companytype
End Class
和班级:
Public Class Companytype
Public Property CompanytypeId As Integer
Public Property Name As String
-> Public Overridable Property Companies As List(Of Company)
End Class
我需要 -> 标记线吗?
我很害怕,但我真的不知道这条线给我带来了哪些进步。实际上,我可以像这样阅读 Companytype 的所有公司:
Public Shared Function PostCompanyTypeCompanies() As List(Of Company)
Dim db As New Context
Dim x As Integer = 1
Dim y = (From c In db.Companies Where c.CompanyType.CompanyTypeId = x Select New With _
{c.Name, _
c.CompanyType})
Dim z As List(Of Company) = y.AsEnumerable() _
.Select(Function(t) New Company With _
{.Name = t.Name, _
.CompanyType = t.CompanyType}).ToList()
Return z
End Function
这与 'x' 只是一个例子,我可以将 CompanytypeId 传递给函数。列表的问题是,当我想获取新公司的 Companytypes 并且我无法访问 Company 的 companytype 时,我总是会得到一个循环引用,例如:
Company.Companytype.Name
当我在没有清单的情况下执行此操作时,一切正常,因为我可以将整个 Companytpe 存储到公司。
我尝试了另一种可能性,将子属性和父属性的 Getter 设置为 Protected,然后问题在逻辑上也是我无法访问该变量,因为我在上面描述了 3 行。
所以重要的问题是:这 -> 列表属性是强制性的吗?
谢谢你的帮助。