Vb.net Visual Studio 2019错误 ;BC30311和#x9;类型为'的值;车辆制造商';无法转换为';VehicleContext';
我有一个项目与VB和实体框架。我被困在这里了。有人能帮我吗?我不知道怎么解决这个问题。我遵循教程,但教程使用.cshtml,我使用.vbhtml 我被困在这里两个小时,找不到解决办法。微软在线帮助是无用的,找不到任何好的帮助我的东西 谢谢你的帮助 Mono是我项目的名称 VehicleModel.vbVb.net Visual Studio 2019错误 ;BC30311和#x9;类型为'的值;车辆制造商';无法转换为';VehicleContext';,vb.net,entity-framework,visual-studio-2019,Vb.net,Entity Framework,Visual Studio 2019,我有一个项目与VB和实体框架。我被困在这里了。有人能帮我吗?我不知道怎么解决这个问题。我遵循教程,但教程使用.cshtml,我使用.vbhtml 我被困在这里两个小时,找不到解决办法。微软在线帮助是无用的,找不到任何好的帮助我的东西 谢谢你的帮助 Mono是我项目的名称 VehicleModel.vb Imports System.ComponentModel.DataAnnotations.Schema Namespace Vehicle.Models Public Class Ve
Imports System.ComponentModel.DataAnnotations.Schema
Namespace Vehicle.Models
Public Class VehicleModel
<DatabaseGenerated(DatabaseGeneratedOption.None)>
Public Property Id As Integer
Public Property MakeId As Integer
Public Property Name As String
Public Property Abrv As String
Public Overridable Property VehicleMake As ICollection(Of VehicleMake)
End Class
End Namespace
VehicleContext.vb
Imports System.Data.Entity
Imports System.Data.Entity.ModelConfiguration.Conventions
Namespace Vehicle.DAL
Public Class VehicleContext
Inherits DbContext
Public Sub New()
MyBase.New("VehicleContext")
End Sub
Public Property VehicleMake As DbSet(Of VehicleContext)
Public Property VehicleModel As DbSet(Of VehicleContext)
End Class
End Namespace
VehicleMake.vb
Imports System
Imports System.Collections.Generic
Namespace Vehicle.Models
Public Class VehicleMake
Public Property Id As Integer
Public Property Name As String
Public Property Abrv As String
Public Overridable Property VehicleModel As ICollection(Of VehicleModel)
End Class
End Namespace
乍一看,代码中似乎有许多问题 在这里:
Dim VehicleMake=New List(Of VehicleMake)From{…
您正在创建一个与您的类同名的列表VehicleMake
。这非常混乱,我建议将其命名为其他名称(VehicleMake
)
但无论如何,稍后当您访问此处的列表时:vehicleMake.ForEach(Sub(s)context.vehicleMake.Add(s))
您正在访问类VehicleContext
中名为VehicleMake
的属性。同样,您正在访问类中的属性,并且该属性的名称与您创建的类相同。但是,您的属性VehicleMake
实际上不是类
VehicleMake的对象,这是al我很困惑
您的属性的Add
方法VehicleMake
需要类型为VehicleContext
的参数(因为它定义为公共属性VehicleMake as DbSet(属于VehicleContext)
).但是,您可以从您的列表中为它提供一个名为VehicleMake
的类VehicleMake
的实例
您之所以会出现此错误,是因为
VehicleMake
是在预期的VehicleContext
位置给出的。并且VehicleMake
不是从VehicleContext
继承的。因此,它无法转换为它。在哪一行您会出现此错误?在VehicleInitializer.vb的这一行:VehicleMake.ForEach(Sub)context.VehicleMake.Add(s))和此行:VehicleMake.ForEach(Sub(s)context.VehicleMake.Add(s))
Imports System
Imports System.Collections.Generic
Namespace Vehicle.Models
Public Class VehicleMake
Public Property Id As Integer
Public Property Name As String
Public Property Abrv As String
Public Overridable Property VehicleModel As ICollection(Of VehicleModel)
End Class
End Namespace