在模型中添加一列-实体类型R不是当前上下文模型的一部分

时间:2018-11-12 15:00:58

标签: entity-framework

我有一个正常的EF应用程序。然后,我需要向表updatedBy中添加一列R。我将其添加到SQL Server的表中,它是:

updatedBy (nvarchar(50), null)

我在edmx文件中添加了与updatedBy相关的三行,如下面的***所示:

<edmx:StorageModels>
  <Schema Namespace=.... >
    <EntityType Name="R">
 ***  <Property Name="updatedBy" Type="nvarchar" MaxLength="50" Nullable="true" />
      ...
  </Schema>
</edmx:StorageModels>

<edmx:ConceptualModels>
  <Schema Namespace="... >
    <EntityType Name="recontractRequest">
***   <Property Name="updatedBy" Type="String" Nullable="true" MaxLength="50" FixedLength="false" Unicode="true" />
    </EntityType>
  </Schema>
</edmx:ConceptualModels>

<edmx:Mappings>
  <Mapping Space="C-S" xmlns="http://schemas.microsoft.com/ado/2009/11/mapping/cs">
    <EntityContainerMapping ... >
      <EntitySetMapping Name="Rs">
        <EntityTypeMapping TypeName="myModel.R">
          <MappingFragment StoreEntitySet="Rs">
 ***        <ScalarProperty Name="updatedBy" ColumnName="updatedBy" />
            ...
          </MappingFragment>
        </EntityTypeMapping>
      </EntitySetMapping>

除上述内容外,我在代码中的任何地方对updatedBy进行了 no 引用,并对运行良好的版本进行了 no 其他更改。新代码可以正常编译。但是当使用db.Rs的现有代码被击中时,例如:

var rr = from r in db.Rs select new Q { x = r.someOtherColumn }.ToList();

我得到:

  

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

当我从edmx文件中删除那三行时,它再次运行正常。是什么导致错误?是由于SQL Server与该模型中的列的一个或多个属性之间不匹配引起的吗?为什么仅在应用程序中添加列如此困难?

0 个答案:

没有答案