代码之家  ›  专栏  ›  技术社区  ›  Andrew

实体类型不是当前上下文的模型的一部分-DBFirst

  •  0
  • Andrew  · 技术社区  · 8 年前

    我有一个查询,它选择了 subrep

    Public Async Function ReturnSubRepsAsync(user As BaseUser) As Task(Of IList(Of SubRep)) Implements IGeneralAccountManagementRepository.ReturnSubRepsAsync
            'The entity type SubRep is not part of the model for the current context.
            Using webDataDBContext As New WebDataEntities()
                'So here it just has an SQL query which it will execute when requested
                Dim subReps = webDataDBContext.Subreps.Where(Function(x) x.CID = user.CID)
    
                If (String.IsNullOrEmpty(user.Password) = False) Then
                    'Add another where onto the SQL query
                    subReps = subReps.Where(Function(x) x.HASH_PASSWORD = user.PasswordHash)
                End If
    
                If (String.IsNullOrEmpty(user.Username) = False) Then
                    'Add another where onto the SQL query
                    subReps = subReps.Where(Function(x) x.username = user.Username)
                End If
    
                'Execute the query
                Return Await subReps.ToListAsync()
            End Using
        End Function
    

    现在由于实体框架数据库不包括验证,例如 MaxLength 关于字符串,我决定遵循本教程: https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/database-first-development/enhancing-data-validation

    并添加另一个使用 MetaDataType

    我的实体框架生成的类如下所示:

    Partial Public Class Subrep
        Public Property id As Integer
        Public Property CID As String
        Public Property username As String
        Public Property LastName As String
        Public Property FirstName As String
        Public Property MIddleInitial As String
        Public Property Address As String
        Public Property Address2 As String
        Public Property City As String
        Public Property State As String
        Public Property Zip As String
        Public Property HomePhone As String
        Public Property EmailAddress As String
        Public Property InActive As String
        Public Property CellPhone As String
        Public Property StartDate As String
        Public Property AuditName As String
        Public Property Background As String
        Public Property FDCPA As String
        Public Property Choicepoint As String
        Public Property Badge As String
        Public Property ConfAgree As String
        Public Property NCCI_OK As String
        Public Property InactiveRepNo As String
        Public Property Approved As String
        Public Property DateApproved As String
        Public Property Denied As String
        Public Property DateDenied As String
        Public Property DeniedNotes As String
        Public Property DOB As String
        Public Property SSN As String
        Public Property MegansLaw As String
        Public Property MASTER As String
        Public Property VACATION As String
        Public Property FC_DEFAULT_FEE As Nullable(Of Decimal)
        Public Property LM_DEFAULT_FEE As Nullable(Of Decimal)
        Public Property MAS90 As String
        Public Property SOS As String
        Public Property HASH_PASSWORD As String
        Public Property changepass As String
        Public Property NOTIFICATION_OFF As String
        Public Property Capacity As String
        Public Property internalqc As String
        Public Property New_Rep As String
        Public Property Stand_By As String
        Public Property Vacation_Start_date As Nullable(Of Date)
        Public Property Vacation_End_date As Nullable(Of Date)
        Public Property sub_coreIP As String
        Public Property rating As String
        Public Property date_last_updated As Nullable(Of Date)
    
    End Class
    

    我的单独部分类应该用于验证,如下所示:

    Partial Public Class SubRep
    End Class
    

    因此,即使它是空的,我也会在标题中列出错误。我已经很好地处理了多个实体。

    1 回复  |  直到 8 年前
        1
  •  0
  •   Andrew    8 年前

    哇哦。

    因此,对于visual studio intellisense,如果按F12尝试查找引用,它会高亮显示两个部分类 Subrep SubRep 这会让你相信两者都是相互关联的。结果是因为第二部分类中的大写R 子代表 ,它与模型无关,因此需要匹配实体的情况 子代表 . 这样地:

    Partial Public Class Subrep
    End Class
    

    . 这样地:

    Public Overridable Property Subreps() As DbSet(Of SubRep)