值不能为空。参数名称:source“Entity Framework Code First

时间:2012-12-22 17:10:59

标签: entity-framework code-first

您好我尝试在现有数据库的代码第一个工作流程中使用EF,但我收到错误:

{“值不能为空。 参数名称:source“}

使用以下行时:

    Dim ctx = New MVCTest1
    Dim t = ctx.Companies.ToList()

我的POCO课程包含在下面:

我有一个名为MVCTest1的标准conn字符串,它指向SQL Server。我认为EF正在使用它,因为我可以在dbContext的连接字符串中看到它。 conn字符串是否需要采用特殊格式。我也注意到onmodelcreated没有被调用。我不确定这是否相关。这是非常新的,所以我怀疑这是明显的干杯,克里斯

Imports System.Data.Entity

Public Class Company
    Public CompanyID As Integer
    Public CompanyName As String
    Public Overridable Property Contacts As ICollection(Of Contact)
End Class

Public Class Contact
    Public ContactID As Integer
    Public FirstName As String
    Public LastName As String
    Public Overridable Property Company As Company
End Class

Public Class MVCTest1
    Inherits DbContext

    Public Contacts As DbSet(Of Contact)
    Public Companies As DbSet(Of Company)

    Protected Overrides Sub OnModelCreating(ByVal modelBuilder As System.Data.Entity.DbModelBuilder)

---Not being called




  End Sub


End Class

1 个答案:

答案 0 :(得分:2)

问题是Contacts中的CompaniesMVCTest1是公共成员变量,而不是属性。因此,当您解决它们时,它们不会被初始化。