Добавление столбца в модель - тип сущности R не является частью модели для текущего контекста - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть работающее приложение EF. Затем мне нужно было добавить столбец updatedBy в таблицу R. Я добавил его в таблицу в SQL Server, и это:

updatedBy (nvarchar(50), null)

Я добавил три строки, относящиеся к updatedBy в файле edmx, как показано *** ниже:

<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 в любом месте моего кода и сделал нет другие изменения в версии, которая работала нормально. Новый код компилируется нормально. Но в тот момент, когда существующий код, который использует db.Rs, ударил, например:

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

Я получаю:

Тип сущности R не является частью модели для текущего контекста

В тот момент, когда я удалил эти три строки из файла edmx, он снова работает нормально. Что является причиной ошибки? Это вызвано несоответствием между одним или несколькими свойствами столбца в SQL Server по отношению к модели? Почему так сложно просто добавить столбец в приложение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...