У меня есть работающее приложение 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 по отношению к модели? Почему так сложно просто добавить столбец в приложение?