Подтвердить что ты не робот

Обновление модели структуры сущностей

Я только начал использовать EF и нашел, что это круто, но я столкнулся с проблемой,

Проблема:
Я изменил схему БД столбца внутри таблицы User, это был Varbinary (50) ранее, а затем я изменил его на VarChar (50), а затем внутри дизайнера MyModel.edmx я выбрал "Обновить модель из базы данных" после нажатия Я получил эту ошибку.

Ошибка:

   Error 2019: Member Mapping specified is not valid.
    The type 'Edm.Binary [Nullable=False,DefaultValue=,MaxLength=100,FixedLength=False]' of member
   'Email' in type 'LearnDBModel.User' is not compatible with SqlServer.varchar 
    [Nullable=False,DefaultValue=, MaxLength=50,Unicode=False,FixedLength=False]' of member 'Email'
    in type 'LearnDBModel.Store.User'.

Сообщите мне, как это исправить.

4b9b3361

Ответ 1

Раньше я сталкивался с подобными проблемами и обнаружил, что способ решить эту проблему - удалить таблицу из модели. Сохраните и закройте модель. Затем снова откройте модель и снова добавьте таблицу.

Ответ 2

Решение Shawn de Wet отлично работает, но если вы не хотите удалять таблицу (например, отношение к некоторым другим таблицам..), вы можете использовать другое решение: Откройте файл edmx с помощью редактора xml, Ctrl + F, чтобы найти строку, похожую на

Свойство Name= "Email" Тип = "Двоичный" Nullable = "false" MaxLength = "50" FixedLength = "false"

Обновить его до:

Свойство Name= "Email" Тип = "String" Nullable = "false" MaxLength = "50" Unicode = "false" FixedLength = "false"

Сохраните его и перестройте.

Ответ 3

Много файлов в EF-модели получают f ***** d. Недостаточно удалить и добавить объект. Объекты были дублированы как table, table1, table_result, table1_result, table_result1 и т.д. Обновление модели обновляло дублированные ссылки вместо оригинала.

Мне нужно открыть блокнот и вручную исправить эти файлы:

EFModel.Context.cs
EFModel.edxm

И удалите эти файлы:

obj\Debug\edmxResourcesToEmbed\MYEfModel.csdl
obj\Debug\edmxResourcesToEmbed\MYEfModel.msl
obj\Debug\edmxResourcesToEmbed\MYEfModel.ssdl

Ответ 4

Не нужно беспокоиться об этом. Выберите затронутую таблицу в модели. Если вы заметили, там вы найдете новое исправление столбца с целым числом (это поведение происходит только из-за изменения типа данных этого столбца).

Пример, если ваше имя столбца "Samplecolumn" , после обновления модели из базы данных вы получите новый столбец с Samplecolumn1. Теперь вы можете просто удалить старый столбец "Samplecolumn" и переименовать новый столбец "Samplecolumn1" в "Samplecolumn" , используя окно свойств под общей категорией.

Просто создайте приложение. Ошибка исчезнет.

Ответ 5

перейдите в файл MyModel.edmx xml, измените Binary на String, решив мою проблему

Ответ 6

щелкните правой кнопкой мыши свойства из измененной таблицы Model.edmx [Диаграмма] и "Обновить модель из базы данных". сохранить и запустить