Указанный элемент типа 'UserName' не поддерживается в сообщении LINQ to Entities означает, что свойство UserName
по-прежнему не сопоставлено со столбцом UserName
в базе данных. Вот шаги, чтобы включить сопоставление свойств в конфигурации Database First (потому что UnintentionalCodeFirstException()
существует в методе OnModelCreating()
):
а. Использование дизайнера EDMX (рекомендуется)
1) Удалить существующее свойство UserName
из Image
класса модели данных.
2) Откройте файл EDMX вашей модели в конструкторе сущностей, затем щелкните правой кнопкой мыши в любом пустом месте на поверхности конструктора и выберите параметр Update Model from Database
.
3) Сохраните все изменения в конструкторе EDMX, теперь свойство UserName
автоматически
создан и сопоставлен с UserName
столбцом в базе данных.
б. Редактировать файл EDMX для создания сопоставления (дополнительно - не рекомендуется)
Этот подход требует редактирования файла EDMX для добавления свойства сопоставления вручную путем добавления имени свойства в разделах <edmx:StorageModels>
, <edmx:ConceptualModels>
и <edmx:Mappings>
:
<!-- for edmx:StorageModels -->
<Property Name="UserName" Type="nvarchar" MaxLength="20" Nullable="false" />
<!-- for edmx:ConceptualModels -->
<Property Name="UserName" Type="String" MaxLength="20" FixedLength="false" Unicode="true" Nullable="false" />
<!-- for edmx:Mappings -->
<ScalarProperty Name="UserName" ColumnName="UserName" />
Примечание: Каждый раз, когда вы добавляете или обновляете столбец (столбцы) и / или схему таблицы в базе данных, вы должны обновлять модель, чтобы отразить все изменения из базы данных в классы модели данных.