在 VB 中的 ASP.NET MVC 5 中创建模型关系
Posted
技术标签:
【中文标题】在 VB 中的 ASP.NET MVC 5 中创建模型关系【英文标题】:Creating Model relation in ASP.NET MVC 5 in VB 【发布时间】:2017-03-11 10:14:48 【问题描述】:我正在创建两个简单的模型“MusicStyle”和“Bands”,我希望 Band 有一个 音乐风格。我能找到的所有示例都是用 C# 编写的,我无法弄清楚 Visual Basic 中的正确语法。
这是我的两个类/模型的代码。
Public Class MusicStyle
Public Property MusicStyleID() As Integer
Public Property MusicStyleName() As String
End Class
Public Class Bands
Public Property BandsID() As Integer
Public Property BandsName() As String
Public Overridable Property MusicStyleID() As ICollection(Of MusicStyle)
End Class
由于某种原因,这会在 MusicStyle 表中生成一个 FK,而不是 Bands 表,并且 FK 的视图中没有 html 控件。
Tables and Relations
【问题讨论】:
【参考方案1】:您需要重构代码以实现正确的关系:
Public Class Band
Public Property BandID() As Integer
Public Property BandName() As String
'This is the FK
Public Property MusicStyleID() As Integer
<ForeignKey("MusicStyleID")>
Public Property MusicStyleRef() As MusicStyle
End Class
Public Class MusicStyle
Public Property MusicStyleID() As Integer
Public Property MusicStyleName() As String
Public Overridable Property Bands() As ICollection(Of Band)
End Class
【讨论】:
【参考方案2】:感谢 Hackerman!,这也仅适用于重构 Bands 类。但我不知道这种方式是否遗漏了您在代码中所做的重要事情。
Public Class Band
Public Property BandID() As Integer
Public Property BandName() As String
Public Property MusicStyleID() As Integer
Public Property MusicStyleRef() As MusicStyle
End Class
Public Class MusicStyle
Public Property MusicStyleID() As Integer
Public Property MusicStyleName() As String
End Class
【讨论】:
是的,但我认为这不能正确反映场景......基本上在我的回答中你定义了One Band haves a Music Style
和One Music Style can be shared by multiple Bands
的关系......这样它更易读,因为以两种方式反映这种关系。以上是关于在 VB 中的 ASP.NET MVC 5 中创建模型关系的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ASP.NET MVC 中创建 CheckBoxListFor 扩展方法?
我们如何使用 EF 在 ASP.Net MVC 应用程序中创建 3 层架构?
如何在 C# Asp.net MVC 中创建 websocket 客户端?