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

2024-04-23

这是模型优先的方法。我已经对此进行了广泛的研究,但还没有得出答案。我已尝试以下链接中的所有建议:

这似乎是同样的问题,但没有解决方案实体类型 不是当前上下文模型的一部分 https://stackoverflow.com/questions/4983108/the-entity-type-classname-is-not-part-of-the-model-for-the-current-context

这些是我已经研究过的链接,所以请不要重复回答 ----EF 4.1 Code First 错误 - 实体类型 SomeType 不是当前上下文模型的一部分 https://stackoverflow.com/questions/5634392/ef-4-1-code-first-error-the-entity-type-sometype-is-not-part-of-the-model-for 实体类型不是模型的一部分,EF 5 https://stackoverflow.com/questions/12560966/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

以及 2 个类文件:

工单标题:

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) 检查数据库 - 两个查询都正确返回数据。 从 vwWorkOrderHeader 中选择 * 从 vwCompanyHeader 中选择 *

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

3)最小起订量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)

CompanyHeader 代码在 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)

我对这个问题完全不知所措,现在已经进入解决同一问题的第三天了。我希望对这个问题有新看法的人可能会发现我所犯的错误,或者为我指出测试我没有想到的问题的方向。

UPDATE:

我删除了服务代码以确保它是 DBContext 中的内容。我已将服务从等式中分离出来,以便仅使用存储库,并且它们都使用相同的 DatabaseContext,因此它不能是与连接字符串相关的任何内容。我验证了模型浏览器中 Insight_Model/EntityContainer:Insight_Entities/Entity Sets/WorkOrderHeaders 下存在并且 Insight_Model/Entity Types/WorkOrderHeader 下存在。看起来 DatabaseContext 甚至没有尝试查询实体集的概念模型。


三(4)天后(取决于你如何看待日子,我根据睡觉的时间来划分日子,而不一定是太阳落山/升起的时间),我找到了答案。在上面的 EDMX 文件中,我有一个名为 LeadTakenDate 的列,在 WorkOrderHeader 类中,我使用了字段名称 LeadTaken。这对我来说是一个愚蠢的错误。

这对您有何好处?这是我解决问题的方法:

首先,我通过 MOQing 零件来将问题精确地隔离到一个区域,以查看问题到底有多深。一旦我发现问题出在 DatabaseContext 中,我就编写了一个测试用例,创建了一个工作用例和一个非工作用例。这隔离了问题并允许我测试理论以更快地解决它。在尝试使用 EF 5.x 持久性无知的 poco 生成器之前,我尝试了一千种不同的方法。我注释掉了 WorkOrderHeader 类中的所有代码,并将生成的代码复制进去。重新运行我的测试并且它们起作用了,因此我开始取消注释我的属性并注释掉生成的代码,然后重新运行我的测试,直到我找到适当的属性。

该错误消息非常隐晦,很难排除故障。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实体类型 不是当前上下文模型的一部分 的相关文章

随机推荐