Asp.net 如何创建用于LINQ的类?

Asp.net 如何创建用于LINQ的类?,asp.net,vb.net,linq,Asp.net,Vb.net,Linq,我试图创建一个简单的类,其中包含变量,我可以将数据分配给该类,然后使用LINQ更新数据库 我的班级是这样的: Public Class GoalDetails Inherits System.Object Public Id As Integer Public GoalTime As Integer Public Scorer As String Public HomeAway As String End Class Dim goalsToDb = New Goal() ' or whate

我试图创建一个简单的类,其中包含变量,我可以将数据分配给该类,然后使用LINQ更新数据库

我的班级是这样的:

Public Class GoalDetails
Inherits System.Object

Public Id As Integer
Public GoalTime As Integer
Public Scorer As String
Public HomeAway As String
End Class
Dim goalsToDb = New Goal() ' or whatever the type is called, you'd have to confirm
goalsToDb.Id = 1
goalsToDb.GoalTime = 87
goalsToDb.Scorer = "W Rooney"
goalsToDb.HomeAway = "Home"

db.Goals.InsertOnSubmit(goalsToDb)

db.SubmitChanges()
我分配变量然后插入的代码是:

Dim goalsToDb = New GoalDetails()
goalsToDb.Id = 1
goalsToDb.GoalTime = 87
goalsToDb.Scorer = "W Rooney"
goalsToDb.HomeAway = "Home"

db.Goals.InsertOnSubmit(goalsToDb)

db.SubmitChanges()
我收到消息“类型为'GoalDetails'的值无法转换为'Goal'


我对第三方DLL中的另一个类使用了相同的代码,它可以工作,但我当然看不到该类的代码,看不出它与我的有什么不同。

这是一种静态类型的语言。即使两种类型在概念上相似,它们仍然是完全不同的类型。您不能互换使用它们

此属性:

db.Goals
是给定类型的集合。(可能命名为
Goal
?)您只能将该类型的项添加到该集合中。类似于以下内容:

Public Class GoalDetails
Inherits System.Object

Public Id As Integer
Public GoalTime As Integer
Public Scorer As String
Public HomeAway As String
End Class
Dim goalsToDb = New Goal() ' or whatever the type is called, you'd have to confirm
goalsToDb.Id = 1
goalsToDb.GoalTime = 87
goalsToDb.Scorer = "W Rooney"
goalsToDb.HomeAway = "Home"

db.Goals.InsertOnSubmit(goalsToDb)

db.SubmitChanges()

您可以创建自定义类来保存应用程序中的数据。但是当使用数据访问框架生成的代码(实体框架?LINQ到SQL?)时然后必须使用该框架生成的类型。因此,如果在整个应用程序中使用自定义类,则在与数据库交互时,需要将其值转换为数据库类。

您似乎混淆了两种类型目标和目标详细信息。您不能使用db.Goals.InsertOnSubmit()在GoalDetails表中插入数据。为此,您需要使用类似db.GoalDetails.InsertOnSubmit()的方法,它将接受GoalDetails对象并插入GoalDetails表中


此外,如果您想查看第三方DLL中的类,您可以使用IL反汇编程序,如

您正在尝试将
GoalDetails
对象插入到
Goals
表中。可以更改填充对象的类型,也可以插入到正确的表中。(
GoalDetails
?)如果您希望它接受任何具有相同属性值的类型,那么您是不正确的。我现在看到了,我不需要创建自己的类,我需要使用它在我将表导入LINQ to SQL类时自动创建的类。它现在正在工作,谢谢。