实体类型<class>不是当前上下文模型的一部分。

8
这是一种以MODEL为先的方法。我已经进行了广泛的研究,但没有得到答案。我已经尝试了以下链接中的所有建议:
这似乎是相同的问题,但没有解决方案。 The entity type <classname> is not part of the model for the current context 这些是我已经研究过的链接,请不要回答重复的问题。 EF 4.1 Code First error - The entity type SomeType is not part of the model for the current context The entity type is not part of the model, EF 5 这是EDMX(为简洁起见而缩写):
<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="2.0" xmlns:edmx="http://schemas.microsoft.com/ado/2008/10/edmx">
<!-- EF Runtime content -->
<edmx:Runtime>
<!-- SSDL content -->
<edmx:StorageModels>
<Schema Namespace="Insight_Model.Store" Alias="Self" Provider="System.Data.SqlClient"    ProviderManifestToken="2008" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns="http://schemas.microsoft.com/ado/2009/02/edm/ssdl">
    <EntityContainer Name="Insight_ModelStoreContainer">
      <EntitySet Name="vwCompanyHeader" EntityType="Insight_Model.Store.vwCompanyHeader" store:Type="Views" store:Schema="dbo" store:Name="vwCompanyHeader">
        <DefiningQuery>SELECT 
  [vwCompanyHeader].[ID] AS [ID], 
  [vwCompanyHeader].[Name] AS [Name], 
  [vwCompanyHeader].[Active] AS [Active], 
  [vwCompanyHeader].[Creator] AS [Creator], 
  [vwCompanyHeader].[Created] AS [Created], 
  [vwCompanyHeader].[Modifier] AS [Modifier], 
  [vwCompanyHeader].[Modified] AS [Modified]
  FROM [dbo].[vwCompanyHeader] AS [vwCompanyHeader]</DefiningQuery>
      </EntitySet>
      <EntitySet Name="vwWorkOrderHeader" EntityType="Insight_Model.Store.vwWorkOrderHeader" store:Type="Views" store:Schema="dbo" store:Name="vwWorkOrderHeader">
        <DefiningQuery>SELECT 
  [vwWorkOrderHeader].[ID] AS [ID], 
  [vwWorkOrderHeader].[Active] AS [Active], 
  [vwWorkOrderHeader].[Name] AS [Name], 
  [vwWorkOrderHeader].[Creator] AS [Creator], 
  [vwWorkOrderHeader].[Created] AS [Created], 
  [vwWorkOrderHeader].[Modifier] AS [Modifier], 
  [vwWorkOrderHeader].[Modified] AS [Modified], 
  [vwWorkOrderHeader].[Leader] AS [Leader], 
  [vwWorkOrderHeader].[LeadTakenDate] AS [LeadTakenDate], 
  [vwWorkOrderHeader].[ProjectID] AS [ProjectID], 
  [vwWorkOrderHeader].[ProjectName] AS [ProjectName], 
  [vwWorkOrderHeader].[WorkOrderStatus] AS [WorkOrderStatus], 
  [vwWorkOrderHeader].[WorkOrderSubStatus] AS [WorkOrderSubStatus], 
  [vwWorkOrderHeader].[WorkOrderType] AS [WorkOrderType], 
  [vwWorkOrderHeader].[WorkOrderSubType] AS [WorkOrderSubType], 
  [vwWorkOrderHeader].[WorkOrderPriority] AS [WorkOrderPriority], 
  [vwWorkOrderHeader].[RefNumber] AS [RefNumber], 
  [vwWorkOrderHeader].[Request] AS [Request]
  FROM [dbo].[vwWorkOrderHeader] AS [vwWorkOrderHeader]</DefiningQuery>
      </EntitySet>
    </EntityContainer>
    <EntityType Name="vwCompanyHeader">
      <Key>
        <PropertyRef Name="ID" />
      </Key>
      <Property Name="ID" Type="int" Nullable="false" />
      <Property Name="Name" Type="varchar" Nullable="false" MaxLength="50" />
      <Property Name="Active" Type="bit" Nullable="false" />
      <Property Name="Creator" Type="varchar" Nullable="false" MaxLength="51" />
      <Property Name="Created" Type="date" Nullable="false" />
      <Property Name="Modifier" Type="varchar" Nullable="false" MaxLength="51" />
      <Property Name="Modified" Type="date" Nullable="false" />
    </EntityType>
    <EntityType Name="vwWorkOrderHeader">
      <Key>
        <PropertyRef Name="ID" />
      </Key>
      <Property Name="ID" Type="int" Nullable="false" />
      <Property Name="Active" Type="bit" Nullable="false" />
      <Property Name="Name" Type="varchar" Nullable="false" MaxLength="15" />
      <Property Name="Creator" Type="varchar" Nullable="false" MaxLength="51" />
      <Property Name="Created" Type="date" Nullable="false" />
      <Property Name="Modifier" Type="varchar" Nullable="false" MaxLength="51" />
      <Property Name="Modified" Type="date" Nullable="false" />
      <Property Name="Leader" Type="varchar" Nullable="false" MaxLength="51" />
      <Property Name="LeadTakenDate" Type="date" Nullable="false" />
      <Property Name="ProjectID" Type="int" Nullable="false" />
      <Property Name="ProjectName" Type="varchar" Nullable="false" MaxLength="15" />
      <Property Name="WorkOrderStatus" Type="varchar" Nullable="false" MaxLength="35" />
      <Property Name="WorkOrderSubStatus" Type="varchar" Nullable="false" MaxLength="35" />
      <Property Name="WorkOrderType" Type="varchar" Nullable="false" MaxLength="35" />
      <Property Name="WorkOrderSubType" Type="varchar" Nullable="false" MaxLength="35" />
      <Property Name="WorkOrderPriority" Type="varchar" Nullable="false" MaxLength="35" />
      <Property Name="RefNumber" Type="varchar" Nullable="false" MaxLength="25" />
      <Property Name="Request" Type="varchar" Nullable="false" MaxLength="1500" />
    </EntityType>
  </Schema></edmx:StorageModels>
<!-- CSDL content -->
<edmx:ConceptualModels>
  <Schema Namespace="Insight_Model" Alias="Self" xmlns:annotation="http://schemas.microsoft.com/ado/2009/02/edm/annotation" xmlns="http://schemas.microsoft.com/ado/2008/09/edm">
    <EntityContainer Name="Insight_Entities" annotation:LazyLoadingEnabled="false">
      <EntitySet Name="CompanyHeaders" EntityType="Insight_Model.CompanyHeader" />
      <EntitySet Name="WorkOrderHeaders" EntityType="Insight_Model.WorkOrderHeader" />
    </EntityContainer>
    <EntityType Name="CompanyHeader">
      <Key>
        <PropertyRef Name="ID" />
      </Key>
      <Property Type="String" Name="Name" MaxLength="50" FixedLength="false" Unicode="false" Nullable="false" />
      <Property Type="Boolean" Name="Active" Nullable="false" />
      <Property Type="String" Name="Creator" Nullable="false" MaxLength="51" FixedLength="false" Unicode="false" />
      <Property Type="DateTime" Name="Created" Nullable="false" />
      <Property Type="String" Name="Modifier" Nullable="false" MaxLength="51" FixedLength="false" Unicode="false" />
      <Property Type="DateTime" Name="Modified" Nullable="false" />
      <Property Type="Int32" Name="ID" Nullable="false" />
    </EntityType>
    <EntityType Name="WorkOrderHeader">
      <Key>
        <PropertyRef Name="ID" />
      </Key>
      <Property Type="Int32" Name="ID" Nullable="false" />
      <Property Type="Boolean" Name="Active" Nullable="false" />
      <Property Type="String" Name="Name" Nullable="false" MaxLength="15" FixedLength="false" Unicode="false" />
      <Property Type="String" Name="Creator" Nullable="false" MaxLength="51" FixedLength="false" Unicode="false" />
      <Property Type="DateTime" Name="Created" Nullable="false" />
      <Property Type="String" Name="Modifier" Nullable="false" MaxLength="51" FixedLength="false" Unicode="false" />
      <Property Type="DateTime" Name="Modified" Nullable="false" />
      <Property Type="String" Name="Leader" Nullable="false" MaxLength="51" FixedLength="false" Unicode="false" />
      <Property Type="DateTime" Name="LeadTakenDate" Nullable="false" />
      <Property Type="Int32" Name="ProjectID" Nullable="false" />
      <Property Type="String" Name="ProjectName" Nullable="false" MaxLength="15" FixedLength="false" Unicode="false" />
      <Property Type="String" Name="WorkOrderStatus" Nullable="false" MaxLength="35" FixedLength="false" Unicode="false" />
      <Property Type="String" Name="WorkOrderSubStatus" Nullable="false" MaxLength="35" FixedLength="false" Unicode="false" />
      <Property Type="String" Name="WorkOrderType" Nullable="false" MaxLength="35" FixedLength="false" Unicode="false" />
      <Property Type="String" Name="WorkOrderSubType" Nullable="false" MaxLength="35" FixedLength="false" Unicode="false" />
      <Property Type="String" Name="WorkOrderPriority" Nullable="false" MaxLength="35" FixedLength="false" Unicode="false" />
      <Property Type="String" Name="RefNumber" MaxLength="25" Nullable="false" FixedLength="false" Unicode="false" />
      <Property Type="String" Name="Request" Nullable="false" MaxLength="1500" FixedLength="false" Unicode="false" />
    </EntityType>
    </Schema>
</edmx:ConceptualModels>
<!-- C-S mapping content -->
<edmx:Mappings>
  <Mapping Space="C-S" xmlns="http://schemas.microsoft.com/ado/2008/09/mapping/cs">
    <EntityContainerMapping StorageEntityContainer="Insight_ModelStoreContainer" CdmEntityContainer="Insight_Entities">
      <EntitySetMapping Name="CompanyHeaders">
        <EntityTypeMapping TypeName="Insight_Model.CompanyHeader">
          <MappingFragment StoreEntitySet="vwCompanyHeader">
            <ScalarProperty Name="ID" ColumnName="ID" />
            <ScalarProperty Name="Modified" ColumnName="Modified" />
            <ScalarProperty Name="Modifier" ColumnName="Modifier" />
            <ScalarProperty Name="Created" ColumnName="Created" />
            <ScalarProperty Name="Creator" ColumnName="Creator" />
            <ScalarProperty Name="Active" ColumnName="Active" />
            <ScalarProperty Name="Name" ColumnName="Name" />
          </MappingFragment>
        </EntityTypeMapping>
      </EntitySetMapping>
      <EntitySetMapping Name="WorkOrderHeaders">
        <EntityTypeMapping TypeName="Insight_Model.WorkOrderHeader">
          <MappingFragment StoreEntitySet="vwWorkOrderHeader">
            <ScalarProperty Name="Request" ColumnName="Request" />
            <ScalarProperty Name="RefNumber" ColumnName="RefNumber" />
            <ScalarProperty Name="WorkOrderPriority" ColumnName="WorkOrderPriority" />
            <ScalarProperty Name="WorkOrderSubType" ColumnName="WorkOrderSubType" />
            <ScalarProperty Name="WorkOrderType" ColumnName="WorkOrderType" />
            <ScalarProperty Name="WorkOrderSubStatus" ColumnName="WorkOrderSubStatus" />
            <ScalarProperty Name="WorkOrderStatus" ColumnName="WorkOrderStatus" />
            <ScalarProperty Name="ProjectName" ColumnName="ProjectName" />
            <ScalarProperty Name="ProjectID" ColumnName="ProjectID" />
            <ScalarProperty Name="LeadTakenDate" ColumnName="LeadTakenDate" />
            <ScalarProperty Name="Leader" ColumnName="Leader" />
            <ScalarProperty Name="Modified" ColumnName="Modified" />
            <ScalarProperty Name="Modifier" ColumnName="Modifier" />
            <ScalarProperty Name="Created" ColumnName="Created" />
            <ScalarProperty Name="Creator" ColumnName="Creator" />
            <ScalarProperty Name="Name" ColumnName="Name" />
            <ScalarProperty Name="Active" ColumnName="Active" />
            <ScalarProperty Name="ID" ColumnName="ID" />
          </MappingFragment>
        </EntityTypeMapping>
      </EntitySetMapping>
      </EntityContainerMapping>
  </Mapping>
</edmx:Mappings>

代码仓库:

Imports System.Linq.Expressions
Imports System.Data.Entity.Infrastructure
Imports System.Data.Entity

Public Class Repository(Of T As {Class, IEntity})
Implements IRepository(Of T)

#Region "Attributes"
Private objectContext As IDatabaseContext
Protected objectSet As IDbSet(Of T)
#End Region

Public Sub New(objContext As IDatabaseContext)
    objectContext = objContext
    objectSet = objectContext.Set(Of T)()
End Sub
Public Function FindAll() As IQueryable(Of T) Implements IRepository(Of T).FindAll
    Return objectSet
End Function

Public Function FindWhere(predicate As Expressions.Expression(Of System.Func(Of T, Boolean))) As System.Linq.IQueryable(Of T) Implements Interfaces.IRepository(Of T).FindWhere
    Return objectSet.Where(predicate)
End Function

Public Function FindById(id As Integer) As T Implements IRepository(Of T).FindById
    Return objectSet.Single(Function(o) o.ID = id)
End Function

Public Sub Add(newEntity As T) Implements IRepository(Of T).Add
    objectSet.Add(newEntity)
End Sub

Public Sub Remove(entity As T) Implements IRepository(Of T).Remove
    objectSet.Remove(entity)
End Sub

Public Function Count(Optional predicate As Expression(Of Func(Of T, Boolean)) = Nothing) As Integer Implements IRepository(Of T).Count
    Return If((predicate Is Nothing), objectSet.Count, objectSet.Where(predicate).Count)
End Function

Public Function Exist(Optional predicate As Expression(Of Func(Of T, Boolean)) = Nothing) As Boolean Implements IRepository(Of T).Exist
    Return If((predicate Is Nothing), objectSet.Any, objectSet.Where(predicate).Any)
End Function
End Class

数据库上下文代码如下:
Imports System.Data.Entity
Imports Insight.DataLayer.Interfaces
Imports System.Data.Objects
Imports System.Configuration

Public Class DatabaseContext
Inherits DbContext
Implements IDatabaseContext

Const defaultConnectStringName = "Insight_Entities"

Public Sub New()
     Me.New(ConfigurationManager.ConnectionStrings(defaultConnectStringName).ConnectionString)
End Sub
Public Sub New(connectionString As String)
    MyBase.New(connectionString)
    MyBase.Configuration.LazyLoadingEnabled = False
    MyBase.Configuration.ProxyCreationEnabled = False
End Sub
Public Overloads Sub SaveChanges() Implements Interfaces.IDatabaseContext.SaveChanges
    MyBase.SaveChanges()
End Sub

Public Overloads Function [Set](Of T As Class)() As System.Data.Entity.IDbSet(Of T) Implements Interfaces.IDatabaseContext.Set
    Return MyBase.Set(Of T)()
End Function
End Class

以下是两个类文件:

WorkOrderHeader:

Imports System.ComponentModel.DataAnnotations
Imports System.Collections.ObjectModel
Imports System.Runtime.Serialization
Imports System.Data.Services.Common

Partial Public Class WorkOrderHeader
Inherits DataTransferObjectHeaderBase

Public Sub New()

End Sub
Public Sub New(iID As Integer, sName As String, bActive As Boolean, sCreator As String, dtCreated As DateTime, sModifier As String, dtModified As DateTime, sLeader As String, dtLeadTaken As Date, iProjectID As Integer, sProjectName As String, sWorkOrderStatus As String, sWorkOrderSubStatus As String, sWorkOrderType As String, sWorkOrderSubType As String, sWorkOrderPriority As String, sRequest As String)
    Me.New(iID, sName, bActive, sCreator, dtCreated, sModifier, dtModified, sLeader, dtLeadTaken, iProjectID, sProjectName, sWorkOrderStatus, sWorkOrderSubStatus, sWorkOrderType, sWorkOrderSubType, sWorkOrderPriority, "", sRequest)
End Sub
Public Sub New(iID As Integer, sName As String, bActive As Boolean, sCreator As String, dtCreated As DateTime, sModifier As String, dtModified As DateTime, sLeader As String, dtLeadTaken As Date, iProjectID As Integer, sProjectName As String, sWorkOrderStatus As String, sWorkOrderSubStatus As String, sWorkOrderType As String, sWorkOrderSubType As String, sWorkOrderPriority As String, sRefNumber As String, sRequest As String)
    ID = iID
    Name = sName
    Active = bActive
    Creator = sCreator
    Created = dtCreated
    Modifier = sModifier
    Modified = dtModified
    Leader = sLeader
    LeadTaken = dtLeadTaken
    ProjectID = iProjectID
    ProjectName = sProjectName
    WorkOrderStatus = sWorkOrderStatus
    WorkOrderSubStatus = sWorkOrderSubStatus
    WorkOrderType = sWorkOrderType
    WorkOrderSubType = sWorkOrderSubType
    WorkOrderPriority = sWorkOrderPriority
    RefNumber = sRefNumber
    Request = sRequest
End Sub

<DataMember()> _
Public Property Leader() As String
    Get
        Return _leader
    End Get
    Set(value As String)
        _leader = value
    End Set
End Property
Private _leader As String

<DataMember()> _
Public Property LeadTaken() As Date
    Get
        Return _leadTaken
    End Get
    Set(value As Date)
        _leadTaken = value
    End Set
End Property
Private _leadTaken As Date

<DataMember()> _
Public Property ProjectID() As Int32
    Get
        Return _projectID
    End Get
    Set(value As Int32)
        If (_projectID <> value) Then
            _projectID = value
        End If
    End Set
End Property
Private _projectID As Int32

<DataMember()> _
Public Property ProjectName() As String
    Get
        Return _projectName
    End Get
    Set(value As String)
        If (_projectName <> value) Then
            _projectName = value
        End If
    End Set
End Property
Private _projectName As String

<DataMember()> _
Public Property WorkOrderStatus() As String
    Get
        Return _workOrderStatus
    End Get
    Set(value As String)
        _workOrderStatus = value
    End Set
End Property
Private _workOrderStatus As String

<DataMember()> _
Public Property WorkOrderSubStatus() As String
    Get
        Return _workOrderSubStatus
    End Get
    Set(value As String)
        _workOrderSubStatus = value
    End Set
End Property
Private _workOrderSubStatus As String

<DataMember()> _
Public Property WorkOrderType() As String
    Get
        Return _workOrderType
    End Get
    Set(value As String)
        _workOrderType = value
    End Set
End Property
Private _workOrderType As String

<DataMember()> _
Public Property WorkOrderSubType() As String
    Get
        Return _workOrderSubType
    End Get
    Set(value As String)
        _workOrderSubType = value
    End Set
End Property
Private _workOrderSubType As String

<DataMember()> _
Public Property WorkOrderPriority() As String
    Get
        Return _workOrderPriority
    End Get
    Set(value As String)
        _workOrderPriority = value
    End Set
End Property
Private _workOrderPriority As String

<DataMember()> _
Public Property RefNumber() As String
    Get
        Return _refNumber
    End Get
    Set(value As String)
        _refNumber = value
    End Set
End Property
Private _refNumber As String

<DataMember()> _
Public Property Request() As String
    Get
        Return _request
    End Get
    Set(value As String)
        _request = value
    End Set
End Property
Private _request As String

End Class
#End Region

公司头部:

Imports System.ComponentModel.DataAnnotations
Imports System.Collections.ObjectModel
Imports System.Runtime.Serialization
Imports System.Data.Services.Common


<DataServiceKey("ID")> _
<MetadataTypeAttribute(GetType(CompanyHeader.CompanyHeaderMetadata))> _
Partial Public Class CompanyHeader
Inherits DataTransferObjectHeaderBase

Friend NotInheritable Class CompanyHeaderMetadata

    'Metadata classes are not meant to be instantiated.
    Private Sub New()
        MyBase.New()
    End Sub

    <DataMember()> _
    Public Property Active As Boolean

    <DataMember()> _
    Public Property ID As Integer

    <DataMember()> _
    Public Property Created As DateTime

    <DataMember()> _
    Public Property Creator As String

    <DataMember()> _
    Public Property Modified As DateTime

    <DataMember()> _
    Public Property Modifier As String

    <DataMember()> _
    Public Property Name As String
End Class

Public Sub New()

End Sub
Public Sub New(iID As Integer, sName As String, bActive As Boolean, sCreator As String, dtCreated As DateTime, sModifier As String, dtModified As DateTime)
    ID = iID
    Name = sName
    Active = bActive
    Creator = sCreator
    Created = dtCreated
    Modifier = sModifier
    Modified = dtModified
End Sub
End Class

单元测试代码:

<TestMethod()> _
Public Sub WorkOrderServiceTests_TestConnectivityThruService5()
    Dim woService As New DatabaseContext
    Dim woHeaders = New Repository(Of WorkOrderHeader)(woService)
    Dim woTests = New Repository(Of WorkOrderTest)(woService)
    Dim coHeaders = New Repository(Of CompanyHeader)(woService)
    Assert.IsTrue(woHeaders.Count <> 0)
End Sub

我尝试解决问题的方法:

1) 检查数据库 - 两个查询都正确返回数据。 select * from vwWorkOrderHeader select * from vwCompanyHeader

2) 从EDMX中删除WorkOrderHeader,然后从数据库重新创建。

3) 使用MOQ模拟DBContext以确保服务查询没有做任何奇怪的事情。这样可以正确返回对象,因此它意味着是在上下文级别或以下的某些地方出了问题。

4) 逐步执行两个测试以确保它们使用相同的构建上下文的方法 - 它们确实如此。

4) 逐步执行两个测试以确保它们使用相同的构建存储库的方法 - 它们确实如此。

5) 唯一的区别在于DatabaseContext的以下函数中:

Public Overloads Function [Set](Of T As Class)() As System.Data.Entity.IDbSet(Of T) Implements Interfaces.IDatabaseContext.Set
    Return MyBase.Set(Of T)()
End Function

WorkOrderHeader代码中在MyBase.Set(Of T)()中有以下内容。
{System.Data.Entity.DbSet(Of Insight.Model.WorkOrderHeader)} System.Data.Entity.DbSet(Of Insight.Model.WorkOrderHeader)

公司头部代码中在 MyBase.Set(Of T)() 上有以下注意事项。
{SELECT   [Extent1].[Name] AS [Name],   [Extent1].[Active] AS [Active],   [Extent1].[Creator] AS [Creator],   [Extent1].[Created] AS [Created],   [Extent1].[Modifier] AS [Modifier],   [Extent1].[Modified] AS [Modified],   [Extent1].[ID] AS [ID]  FROM (SELECT        [vwCompanyHeader].[ID] AS [ID],        [vwCompanyHeader].[Name] AS [Name],        [vwCompanyHeader].[Active] AS [Active],        [vwCompanyHeader].[Creator] AS [Creator],        [vwCompanyHeader].[Created] AS [Created],        [vwCompanyHeader].[Modifier] AS [Modifier],        [vwCompanyHeader].[Modified] AS [Modified]       FROM [dbo].[vwCompanyHeader] AS [vwCompanyHeader]) AS [Extent1]}   System.Data.Entity.DbSet(Of Insight.Model.CompanyHeader)

我完全不知道这个问题,已经连续工作了3天。我希望有些新的眼睛能够看到我犯的错误或指引我测试这个问题的方向,我很希望解决它。
更新:
我删除了服务代码以确保问题出在DBContext中。我已经将服务隔离出来,只使用存储库,并且它们都使用相同的DatabaseContext,因此与连接字符串相关的任何问题都可以排除。我验证了在模型浏览器下的Insight_Model / EntityContainer: Insight_Entities / Entity Sets / WorkOrderHeaders存在,在Insight_Model / Entity Types / WorkOrderHeader下也存在。它似乎几乎看起来像DatabaseContext甚至没有尝试查询实体集的概念模型。
1个回答

23

经过3(4)天的努力(根据我的理解,我将一天分为我睡觉的时间段而不是阳光出现与否),我找到了答案。在上面的EDMX文件中,我有一个名为LeadTakenDate的列,在WorkOrderHeader类中,我使用了LeadTaken字段名称。这是我自己的一个愚蠢错误。

这个问题如何可能对您有所帮助?下面是我解决问题的方法:

首先,我通过MOQ来排除部分内容,以确定问题确切地出现在哪个区域。一旦我发现问题在DatabaseContext中,我编写了一个测试用例,创建了一个有效和无效的用例。这样可以隔离问题,让我更快地测试修复它的理论。在尝试了成千上万种不同的方法之后,我尝试使用EF 5.x持久化无知的Poco生成器。我注释掉了WorkOrderHeader类中的所有代码,并将生成的代码复制进去。重新运行我的测试,它们起作用了,然后我开始取消注释我的属性并取消注释生成的代码,然后重新运行我的测试,直到找到适当的属性。

错误信息往往比较晦涩难懂,导致排查问题非常困难。


2
Aaron,你的问题非常长且详细,编辑、更新和回答都做得很好。很抱歉没有其他人给你点赞,但我给了! - SimonGoldstone
1
仅凭你们的努力和社区关怀,我刚刚给了你们一个点!干杯,伙计们,继续保持好工作! - Art
我犯了完全相同的错误,花了两个小时才弄明白。最后当我读到你的前三行时,我想着等一下,让我看看我的 poco 类,然后就找到了罪魁祸首... 我把我的 poco 类命名为 Id,但在数据库中我改成了 CampusId,这让我非常困扰,但我已经从中吸取了教训... - Nick Kahn
那么在你的情况下,问题是属性名称不正确吗?如果是这样,那么这个错误信息就非常误导人了... :( 我也遇到了同样的错误,但找不到这个错误信息背后的原因... - Prokurors

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接