Ошибка 11009 свойство не сопоставлено

To improve an older project I am forced by the circumstances to use VS 2008 and Framework 3.5 — I have issues with the edmx showing bizarre behavior and not updating the entities as required.

The edmx throws me the above error, but when I go to the respective table and right click it — «Update Model from Database» there is no change, the error is still there.

If I delete the table from the diagram by selecting it and pressing del, then in the Model Browser It disappears from the .Database but when clicking «Update model from Database» I can’t see i in the «Add» list, all I can do is «Refresh» the table since I still see it in the refresh list (which should not happen because I deleted it! )

ROMANIA_engineer's user avatar

asked Oct 8, 2012 at 11:02

Amc_rtty's user avatar

3

I had this issue when I changed a column name from CampaignKey to CampaignCode. After making the DB change, I went to the .edmx designer, right clicked and chose Update Model from Database. Then when I compiled I got the error:

Error 11009: Property CampaignKey is not mapped.

Taking a closer look at my table in the designer showed me that Visual Studio had created the new field CampaignCode as in the DB. But it also had left the old field CampaignKey in there, causing the error as it no longer exists in the DB.

To fix the issue, I right-clicked on the CampaignKey field in my table in the designer and selected Delete.

After that I saved the .edmx, compiled and the error was gone.

Mosh Feu's user avatar

Mosh Feu

28.4k16 gold badges89 silver badges135 bronze badges

answered Aug 26, 2013 at 20:54

tjp69's user avatar

tjp69tjp69

1,0689 silver badges13 bronze badges

2

Check the xml file of your model, it’s probably still in there somewhere. Try deleting it manually from that XML file, then try to update again. Be sure to take backups though.

Frank Visaggio's user avatar

answered Oct 8, 2012 at 21:22

Thousand's user avatar

ThousandThousand

6,5723 gold badges38 silver badges46 bronze badges

3

I have gotten this same error before when column names on tables or views change case. For example, if a view has a column named «OrderID» and then the column name is changed to «OrderId» then it will give the error ‘Property «OrderID» is not mapped’. This can be resolved by changing the case back to how it exists in the model.

answered Apr 3, 2013 at 22:55

Dave's user avatar

DaveDave

3,2731 gold badge17 silver badges15 bronze badges

I opened the edmx file in Notepad and deleted the incorrect field. I then updated the model again in the designer

answered Apr 23, 2014 at 9:18

Chazza's user avatar

ChazzaChazza

2263 silver badges10 bronze badges

1

At times, upgrading a project throws up errors.

Just make sure you have backed up all your data, just-in-case.

When we add entity model into our project, it adds a corresponding connection string to web.config. Now, when you delete the model from project, even then the connection string still resides there in the web.config.

So, take the following steps:

  1. Delete the model
  2. Delete the corresponding connection string from web.config
  3. Now, perform the steps to add the model again from scratch.

Hopefully, it should work.

answered Oct 8, 2012 at 11:24

Viral Jain's user avatar

Viral JainViral Jain

1,0041 gold badge14 silver badges30 bronze badges

2

I know this question was about VS 2008 and ‘recovering’ a model, but for anyone who finds this like I did when I had the same Error 11009 in VS 2015, I first tried the «Update Model from Database» to no avail, then I finally fixed it by right-clicking the model table in the .edmx design and choosing Table Mapping. I did not have to delete the model. My model is associated with a db table.

answered Jan 31, 2017 at 23:46

hullflyer's user avatar

1

The easiest way I’ve found to deal with this is to find the model/table with the unmapped property in the edmx. Select it and delete it. Save your edmx and then update it again, adding the model back in from the database. Deleting just the unmapped property didn’t work for me.

answered Jan 14, 2020 at 11:56

Hazza's user avatar

HazzaHazza

6,4613 gold badges24 silver badges37 bronze badges

I had the same error when I changed a column name in the database and updated the database from the model. I was unable to find the original name anywhere in the solution. I solved it by simply

  1. deleting the table from the model (right-click on the table, hit delete),
  2. updating the model from the database (right-click on edmx background, select «Update Model From Database», Add changed table).

answered Apr 8, 2015 at 17:42

CindyH's user avatar

CindyHCindyH

2,9862 gold badges24 silver badges38 bronze badges

In my case I added a new scalar property named sys_user_id to an existing table in the Designer inside Visual Studio. I didn’t update the Model from the Database because that was causing a lot of errors in the designer. I just wanted to map a single column that was added to a given table on the database side.

The problem is that after doing this I started getting the following exception:

  • InnerException {«\r\nModels.ShardData.msl(352,10) : error 3004: Problem in mapping fragments starting at line 352: No mapping
    specified for properties table_name.sys_user_id in Set
    table_name.\r\nAn Entity with Key (PK) will not round-trip when:\r\n
    Entity is type [ShardDB.table_name]\r\n»} System.Exception
    {System.Data.Entity.Core.MappingException}

In Visual Studio what was being shown in the Error List window was: Error 11009: Property ' ' is not mapped

What I did to fix this was the following:

  1. Opened the .edmx file in Visual Studio Code;
  2. Searched for the offending table_name;
  3. Added the missing mappings where appropriate.

It was missing the mappings in 2 places:

<EntityType Name="table_name">
    <Key>
        <PropertyRef Name="user_id" />
    </Key>
    <Property Name="user_id" Type="int" Nullable="false" />
    <Property Name="tenant_id" Type="int" />
    ... ALL OTHER COLUMNS HERE ...
    <Property Name="sys_user_id" Type="int" Nullable="true" /> <= WAS MISSING THIS AND SO I HAD TO ADD IT BY HAND
</EntityType>

and

<EntitySetMapping Name="table_name">
  <EntityTypeMapping TypeName="ShardDB.table_name">
    <MappingFragment StoreEntitySet="table_name">
      <ScalarProperty Name="user_id" ColumnName="user_id" />
      <ScalarProperty Name="tenant_id" ColumnName="tenant_id" />
      ... ALL OTHER COLUMNS HERE ...
      <ScalarProperty Name="sys_user_id" ColumnName="sys_user_id" /> <= WAS MISSING THIS AND SO I HAD TO ADD IT BY HAND
    </MappingFragment>
  </EntityTypeMapping>
</EntitySetMapping>

After changing it in Visual Studio Code and getting back to Visual Studio it asked me to reload the .edmx file since it was modified. Reloaded and then hit F5 to run the code. It started working as expected.

answered Sep 23, 2019 at 17:01

Leniel Maccaferri's user avatar

Leniel MaccaferriLeniel Maccaferri

100k46 gold badges371 silver badges480 bronze badges

1

I had the same issue with Visual Studio 2017 and Entity Framework 6 on a Database First model, upon refreshing it to get new columns.

I tried everything above but the only thing that worked was to delete the EDMX and generate a new one.

answered Oct 18, 2017 at 15:34

chakeda's user avatar

chakedachakeda

1,5511 gold badge18 silver badges40 bronze badges

I have this error (Error 3007: Problem in mapping fragments starting at lines … ) , after add a table to .edmx

First I delete the last added table, then I re-update the model wiht that table, but checking the ‘include foreing key checkbox:

enter image description here

answered Mar 9, 2018 at 16:45

Condemateguadua's user avatar

Entity Framework error — Error 11009: Property is not mapped

The reason for this error is there is no proper sync between the DB and the .edmx file.

Solution 1

Delete the model from the .edmx file and add it again.

Solution 2

Edit the .edmx file by right clicking it.

Add the updated/new property at the two following places;

Under:

<EntityType Name="TableName">
<Property Name="SaleFinYear" Type="varchar" MaxLength="50" />

Under`:

<MappingFragment StoreEntitySet="TableName">
<ScalarProperty Name="SaleFinYear" ColumnName="SaleFinYear" />

For more details with screenshots check — here

JBES's user avatar

JBES

1,51211 silver badges18 bronze badges

answered May 16, 2020 at 16:24

Rahul Shakya's user avatar

when you change the name of your column and try to update to the database, it loses its mapping.

Solution:
1- right-click on the table that has property not mapped at.
2- select the table mapping option.
3- you will find the not mapped property doesn’t have mapping.
enter image description here

answered Oct 13, 2021 at 10:45

Mohamed Elhakim's user avatar

Mohamed ElhakimMohamed Elhakim

2041 gold badge3 silver badges7 bronze badges

Try to mape it in the xml file of your model :

<ScalarProperty Name="CampaignKey" ColumnName="CampaignKey" />

It works for me.

Eric Aya's user avatar

Eric Aya

69.5k35 gold badges181 silver badges253 bronze badges

answered Mar 1, 2022 at 16:28

Louanes Fennouche's user avatar

1

Чтобы улучшить старый проект, я вынужден обстоятельствами использовать VS 2008 и Framework 3.5. У меня возникают проблемы с edmx, показывающим странное поведение и не обновляющее сущности по мере необходимости.

Edmx выдает мне вышеприведенную ошибку, но когда я перехожу в соответствующую таблицу и щелкаю ее правой кнопкой мыши — «Обновить модель из базы данных» нет никаких изменений, ошибка все еще существует.

Если я удалю таблицу из диаграммы, выбрав ее и нажав del, тогда в обозревателе моделей она исчезнет из базы .Database, но при нажатии «Обновить модель из базы данных» я не вижу я в списке «Добавить», все, что я могу сделать, это «Обновить» таблицу, так как я все еще вижу ее в списке обновлений (чего не должно быть, потому что я удалил ее!)

Поделиться

Источник

8 ответов

Проверьте файл xml вашей модели, он, вероятно, все еще где-то там. Попробуйте удалить его вручную из этого файла XML, а затем попробуйте обновить его снова. Однако не забудьте сделать резервные копии.

Thousand

Поделиться

У меня возникла эта проблема, когда я изменил имя столбца от CampaignKey до CampaignCode. После изменения БД я пошел в конструктор .edmx, щелкнул правой кнопкой мыши и выбрал Обновить модель из базы данных. Затем, когда я скомпилировал, я получил ошибку:

Ошибка 11009: Свойство CampaignKey не отображается.

Более подробно рассмотрев таблицу в дизайнере, я показал, что Visual Studio создала новое поле CampaignCode, как в БД. Но он также оставил там старое поле CampaignKey, вызывая ошибку, поскольку она больше не существует в БД.

Чтобы устранить проблему, я щелкнул правой кнопкой мыши по полю CampaignKey в моей таблице в дизайнере и выбрал Удалить.

После этого я сохранил .edmx, скомпилировал и ошибка исчезла.

tjp69

Поделиться

Я получил эту же ошибку до того, как изменится регистр имен столбцов в таблицах или представлениях. Например, если в представлении есть столбец с именем «OrderID», а затем имя столбца изменяется на «OrderId», тогда он выдаст ошибку «Property» OrderID «не отображается». Это можно решить, изменив случай на то, как оно существует в модели.

Dave

Поделиться

Я открыл файл edmx в Notepad и удалил неправильное поле. Затем я обновил модель еще раз в дизайнере

Chazza

Поделиться

Иногда обновление проекта вызывает ошибки.

Просто убедитесь, что вы скопировали все свои данные в любом случае.

Когда мы добавляем модель сущности в наш проект, она добавляет соответствующую строку для подключения к web.config. Теперь, когда вы удаляете модель из проекта, даже тогда строка соединения все еще находится там в web.config.

Итак, сделайте следующие шаги:

  • Удалить модель
  • Удалить соответствующую строку подключения из web.config
  • Теперь выполните шаги, чтобы снова добавить модель с нуля.

Надеюсь, он должен работать.

Viral Jain

Поделиться

У меня была такая же ошибка, когда я изменил имя столбца в базе данных и обновил базу данных из модели. Мне не удалось найти исходное имя в любом месте решения. Я решил это просто

  • удаление таблицы из модели (щелкните правой кнопкой мыши по таблице, нажмите delete),
  • обновление модели из базы данных (щелкните правой кнопкой мыши на фоне edmx, выберите «Обновить модель из базы данных», «Добавить измененную таблицу» ).

CindyH

Поделиться

У меня была такая же проблема с Visual Studio 2017 и Entity Framework 6 в первой модели базы данных, обновив ее, чтобы получить новые столбцы.

Я пробовал все выше, но единственное, что работало, это удалить EDMX и создать новый.

chakeda

Поделиться

Я знаю, что этот вопрос касался VS 2008 и «восстановления» модели, но для тех, кто находит это, как я сделал, когда у меня была такая же ошибка 11009 в VS 2015, я сначала попробовал «Обновить модель из базы данных» до no avail, затем я, наконец, исправил его, щелкнув правой кнопкой мыши таблицу модели в проекте .edmx и выбрав Table Mapping. Мне не нужно было удалять модель. Моя модель связана с таблицей db.

hullflyer

Поделиться

Ещё вопросы

  • 1Почему значение в List <T> изменяется, если есть копии в ObservableCollection?
  • 0Создать синтаксическую ошибку триггера при вставке триггера
  • 0Почему у меня возникают проблемы с изменением курсоров мыши в моей реализации интерактивного QGraphicsView в Qt?
  • 1Найдите совпадение в строке файла, затем перейдите к следующему файлу
  • 0извлекать несуществующую строку как NULL при присоединении
  • 1Python, построить три графика в plt.subplots (2,2)?
  • 1Основной конец этой ассоциации должен быть явно настроен
  • 1Gradle, Вы не приняли лицензионные соглашения (Android SDK)
  • 0Как выровнять навигационную панель по нижней части окна без зазора между кнопками и краем окна
  • 0preg_replace для сопоставления шаблона с любой стороны селектора
  • 1Создать один CSV из двух файлов CSV со значениями X и Y в Python
  • 1Обещание Resolve возвращает 2 массива один неопределенный
  • 0Тайм-аут истек -> Невозможно подключиться к любому из указанных хостов MySQL
  • 1Конструктор не определен, говорит Eclipse, но он определен (Java)
  • 1tornado.httpclient.HTTPError: HTTP 599: время ожидания во время запроса
  • 0Вложенная директива в ngView не работает Angular JS
  • 1Объект должен сохранять свой статус
  • 0Java: Удалить строку mysql, если значение не существует в ArrayList
  • 1Ошибка OpenCV: bitwise_and выдает ошибку, что маска и изображение не имеют одинаковый размер
  • 0C ++ инициализирует неизвестный размер 2DimArray в конструкторе
  • 1MOXy XmlNameTransformer для нескольких пакетов
  • 1Функция хеширования Java MD5, дающая неправильный хеш
  • 0используя поле AS в предложении WHERE
  • 0Видеоплеер с пользовательским меню?
  • 0Как преобразовать подзапрос MySql в подзапрос HQL
  • 1Не удается прочитать свойство ‘_listenId’ неопределенного при использовании listenTo в представлении
  • 0Тест вне диапазона
  • 1Изменить текст на жирный или добавить изображения с помощью Google Script
  • 0jQuery slideDown () после скрытия и слайда через 5 секунд
  • 0Вызов одного метода из другого
  • 1Почему элементы CSS и Bootstrap исчезают с сервера экспресс-узла?
  • 1Использование массива Query для Cloud Firestore Структура социальных сетей
  • 0Карты Google — Использование Заменить
  • 0AngularJS просмотры нарушены после перенаправления oauth
  • 1WCF замедляется с несколькими запросами
  • 1Установка значения из одного класса в другой в Java
  • 0Могу ли я объединить эти вызовы g ++ в один?
  • 1Проверка прошла успешно
  • 1Изменить параметр URL
  • 0запись имени файла — fwrite необходимо разделить символом «/»
  • 1Android Crashlytics прекратил отправлять отчеты о сбоях
  • 0Попытка сделать простую вещь в AngularJS: form->, если вы поставите правильное слово-> появляется кнопка-> вы можете нажать и перейти на другую страницу;
  • 0о removeClass из родительского элемента
  • 0У вас есть значение индекса копирования столбца при вставке?
  • 0сохранение базы данных резервных копий mysql с использованием php и пути mkdir
  • 1Увеличьте разделение строк в тексте аннотации matplotlib
  • 1В чем разница между FindAll и Select?
  • 0Подсказка Highcharts показывает дополнительные данные
  • 0Инициализация базы данных Ghost при новой установке
  • 1Crashlytics сообщает в Fabric, но в Firebase Crashlytics нет никаких следов

Сообщество Overcoder

Чтобы улучшить старый проект, обстоятельства вынуждают меня использовать VS 2008 и Framework 3.5 — у меня есть проблемы с тем, что edmx показывает странное поведение и не обновляет объекты по мере необходимости.

Edmx выдает мне вышеуказанную ошибку, но когда я перехожу к соответствующей таблице и щелкаю ее правой кнопкой мыши — «Обновить модель из базы данных» нет изменений, ошибка все еще существует.

Если я удалю таблицу с диаграммы, выбрав ее и нажав del, то в обозревателе моделей она исчезнет из базы данных, но при нажатии «Обновить модель из базы данных» я не вижу i в списке «Добавить», все я можно «Обновить» таблицу, поскольку я все еще вижу ее в списке обновлений (чего не должно происходить, потому что я удалил ее!)

14 ответов

Лучший ответ

Проверьте xml-файл вашей модели, вероятно, он все еще где-то там. Попробуйте удалить его вручную из этого XML-файла, а затем повторите попытку. Но обязательно сделайте резервные копии.


54

Frank Visaggio
23 Мар 2016 в 00:14

Когда вы меняете имя своего столбца и пытаетесь обновить базу данных, он теряет свое отображение.

Решение: 1- щелкните правой кнопкой мыши таблицу, свойство которой не сопоставлено. 2- выберите опцию сопоставления таблицы. 3 — вы обнаружите, что у не отображаемого свойства нет сопоставления. введите описание изображения здесь


0

Mohamed Elhakim
13 Окт 2021 в 13:45

Попробуйте отобразить его в xml-файле вашей модели:

<ScalarProperty Name="CampaignKey" ColumnName="CampaignKey" />

Меня устраивает.


0

Eric Aya
1 Мар 2022 в 20:55

У меня возникла эта проблема, когда я изменил имя столбца с CampaignKey на CampaignCode. После изменения БД я пошел к конструктору .edmx, щелкнул правой кнопкой мыши и выбрал Обновить модель из базы данных . Затем, когда я скомпилировал, я получил ошибку:

Ошибка 11009: свойство CampaignKey не сопоставлено.

Присмотревшись к моей таблице в конструкторе, я понял, что Visual Studio создала новое поле CampaignCode, как в БД. Но он также оставил там старое поле CampaignKey, что вызвало ошибку, поскольку оно больше не существует в БД.

Чтобы решить эту проблему, я щелкнул правой кнопкой мыши поле CampaignKey в своей таблице в конструкторе и выбрал Удалить .

После этого я сохранил .edmx, скомпилировал и ошибка исчезла.


54

Mosh Feu
19 Июл 2016 в 10:52

Иногда при обновлении проекта возникают ошибки.

Просто убедитесь, что вы сделали резервную копию всех своих данных, на всякий случай.

Когда мы добавляем модель сущности в наш проект, она добавляет соответствующую строку подключения в web.config . Теперь, когда вы удаляете модель из проекта, даже тогда строка подключения все еще находится в файле web.config.

Итак, сделайте следующие шаги:

  1. Удалить модель
  2. Удалите соответствующую строку подключения из web.config
  3. Теперь выполните шаги, чтобы снова добавить модель с нуля.

Надеюсь, это должно сработать.


2

Viral Jain
8 Окт 2012 в 15:24

Я открыл файл edmx в Блокноте и удалил неправильное поле. Затем я снова обновил модель в дизайнере


2

Chazza
23 Апр 2014 в 13:18

Я знаю, что этот вопрос касался VS 2008 и «восстановления» модели, но для тех, кто находит это, как я, когда у меня была такая же ошибка 11009 в VS 2015, я сначала попробовал «Обновить модель из базы данных» безрезультатно, а затем Я, наконец, исправил это, щелкнув правой кнопкой мыши таблицу модели в дизайне .edmx и выбрав Отображение таблиц. Удалять модель не пришлось. Моя модель связана с таблицей БД.


2

hullflyer
1 Фев 2017 в 02:46

У меня была такая же ошибка, когда я изменил имя столбца в базе данных и обновил базу данных из модели. Мне не удалось найти оригинальное имя в решении. Я решил это просто

  1. удаление таблицы из модели (щелкните правой кнопкой мыши по таблице, нажмите удалить),
  2. обновление модели из базы данных (щелкните правой кнопкой мыши фон edmx, выберите «Обновить модель из базы данных», «Добавить измененную таблицу»).


1

CindyH
8 Апр 2015 в 20:42

У меня была такая же проблема с Visual Studio 2017 и Entity Framework 6 в модели Database First после обновления для получения новых столбцов.

Я пробовал все, что описано выше, но единственное, что сработало, — это удалить EDMX и сгенерировать новый.


0

chakeda
18 Окт 2017 в 18:34

У меня есть эта ошибка (ошибка 3007: проблема с отображением фрагментов, начинающихся со строк …) после добавления таблицы в .edmx

Сначала я удаляю последнюю добавленную таблицу, затем повторно обновляю модель с этой таблицей, но проверяю флажок ‘include foreing key’:

enter image description here


0

Condemateguadua
9 Мар 2018 в 19:45

В моем случае я добавил новое скалярное свойство с именем sys_user_id в существующую таблицу в конструкторе внутри Visual Studio. Я не обновлял модель из базы данных, потому что это вызывало много ошибок в дизайнере. Я просто хотел отобразить один столбец, который был добавлен в данную таблицу на стороне базы данных.

Проблема в том, что после этого я начал получать следующее исключение:

  • InnerException {«\ r \ nModels.ShardData.msl (352,10): ошибка 3004: проблема при сопоставлении фрагментов, начинающихся со строки 352: сопоставление отсутствует указан для свойств table_name.sys_user_id в Set table_name. \ r \ nСущность с ключом (PK) не будет возвращаться, когда: \ r \ n Тип объекта [ShardDB.table_name] \ r \ n «} System.Exception {System.Data.Entity.Core.MappingException}

В Visual Studio в окне Error List отображалось следующее: Error 11009: Property ' ' is not mapped

Я сделал следующее, чтобы исправить это:

  1. Открыл файл .edmx в Visual Studio Code;
  2. Искал обидного table_name;
  3. При необходимости добавлены недостающие сопоставления.

В двух местах отсутствовали сопоставления:

<EntityType Name="table_name">
    <Key>
        <PropertyRef Name="user_id" />
    </Key>
    <Property Name="user_id" Type="int" Nullable="false" />
    <Property Name="tenant_id" Type="int" />
    ... ALL OTHER COLUMNS HERE ...
    <Property Name="sys_user_id" Type="int" Nullable="true" /> <= WAS MISSING THIS AND SO I HAD TO ADD IT BY HAND
</EntityType>

А также

<EntitySetMapping Name="table_name">
  <EntityTypeMapping TypeName="ShardDB.table_name">
    <MappingFragment StoreEntitySet="table_name">
      <ScalarProperty Name="user_id" ColumnName="user_id" />
      <ScalarProperty Name="tenant_id" ColumnName="tenant_id" />
      ... ALL OTHER COLUMNS HERE ...
      <ScalarProperty Name="sys_user_id" ColumnName="sys_user_id" /> <= WAS MISSING THIS AND SO I HAD TO ADD IT BY HAND
    </MappingFragment>
  </EntityTypeMapping>
</EntitySetMapping>

После изменения его в Visual Studio Code и возвращения в Visual Studio он попросил меня перезагрузить файл .edmx, поскольку он был изменен. Перезагрузите, а затем нажмите F5, чтобы запустить код. Все заработало как положено.


0

Leniel Maccaferri
23 Сен 2019 в 20:01

Самый простой способ, который я нашел, — это найти модель / таблицу с неотображенным свойством в edmx. Выберите его и удалите. Сохраните ваш edmx, а затем обновите его снова, добавив модель обратно из базы данных. Удаление только неотмеченного свойства у меня не сработало.


0

Hazza
14 Янв 2020 в 14:56

Ошибка Entity Framework — Error 11009: Property is not mapped

Причина этой ошибки в том, что нет надлежащей синхронизации между БД и файлом .edmx .

Решение 1

Удалите модель из файла .edmx и добавьте ее снова.

Решение 2

Отредактируйте файл .edmx , щелкнув его правой кнопкой мыши.

Добавьте обновленное / новое свойство в двух следующих местах;

Под:

<EntityType Name="TableName">
<Property Name="SaleFinYear" Type="varchar" MaxLength="50" />

Под`:

<MappingFragment StoreEntitySet="TableName">
<ScalarProperty Name="SaleFinYear" ColumnName="SaleFinYear" />

Для получения дополнительной информации с проверкой снимков экрана — здесь


0

JBES
17 Май 2020 в 03:08

Я получал ту же ошибку раньше, когда имена столбцов в таблицах или представлениях меняют регистр. Например, если в представлении есть столбец с именем «OrderID», а затем имя столбца изменено на «OrderId», то будет выдана ошибка «Свойство« OrderID »не сопоставлено». Это можно решить, вернув корпус к тому, как он существует в модели.


3

Dave
4 Апр 2013 в 02:55

The «Error 11009: Property ‘ ‘ is not mapped» error in Entity Framework occurs when a property in a model class is not mapped to a corresponding column in the database. This error can cause a problem during database operations, such as insert, update, and delete, when the Entity Framework tries to map the model data to the database, but it cannot find the corresponding database column.

Method 1: Use Fluent API to map the property

To fix the Entity Framework error «Error 11009: Property ‘ ‘ is not mapped» using Fluent API to map the property, follow these steps:

  1. Open your DbContext class and override the OnModelCreating method.
  2. In the OnModelCreating method, use the modelBuilder.Entity method to configure the entity that is causing the error.
  3. Use the HasColumnName method to map the property to the corresponding column in the database.

Here is an example code snippet:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<YourEntity>()
                .Property(p => p.YourProperty)
                .HasColumnName("YourColumnName");
}

In the above example, replace «YourEntity» with the name of the entity causing the error and «YourProperty» with the name of the property that is not mapped. Also, replace «YourColumnName» with the name of the corresponding column in the database.

You can use this method to map multiple properties in the same entity. Here is an example:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<YourEntity>()
                .Property(p => p.Property1)
                .HasColumnName("Column1");

    modelBuilder.Entity<YourEntity>()
                .Property(p => p.Property2)
                .HasColumnName("Column2");
}

In the above example, replace «YourEntity» with the name of the entity causing the error, «Property1» and «Property2» with the names of the properties that are not mapped, and «Column1» and «Column2» with the names of the corresponding columns in the database.

Using Fluent API to map properties is a powerful technique that allows you to customize the mapping of your entities to the database. By following the steps outlined above, you can fix the Entity Framework error «Error 11009: Property ‘ ‘ is not mapped» and ensure that your application runs smoothly.

Method 2: Use Data Annotations to map the property

To map a property using Data Annotations in Entity Framework, you can use the [Column] attribute. Here is an example:

public class Product
{
    public int ProductId { get; set; }
    
    [Column("ProductName")]
    public string Name { get; set; }
    
    public decimal Price { get; set; }
}

In this example, the Name property is mapped to the ProductName column in the database using the [Column] attribute.

You can also use the [Table] attribute to specify the table name:

[Table("Products")]
public class Product
{
    // ...
}

If you want to map a property to a primary key column, you can use the [Key] attribute:

public class Product
{
    [Key]
    public int ProductId { get; set; }
    
    // ...
}

You can also use the [ForeignKey] attribute to specify a foreign key relationship:

public class Order
{
    public int OrderId { get; set; }
    
    public int ProductId { get; set; }
    
    [ForeignKey("ProductId")]
    public Product Product { get; set; }
}

In this example, the Product property is mapped to the Product entity using the ProductId foreign key column.

To use these attributes, you need to add the System.ComponentModel.DataAnnotations namespace to your code file:

using System.ComponentModel.DataAnnotations;

By using Data Annotations to map your properties, you can resolve the Entity Framework error — Error 11009: Property ‘ ‘ is not mapped.

Method 3: Check if the property name and database column name match

To fix the Entity Framework error «Error 11009: Property ‘ ‘ is not mapped», you can check if the property name and database column name match. Here are the steps to do it:

  1. Open your model class and check the property name that causes the error.
  2. Open your database table and check the column name that corresponds to the property.
  3. Make sure that the property name and column name match exactly, including case sensitivity and spaces.
  4. If they don’t match, you can use the ColumnAttribute to map the property to the correct column name. Here’s an example:
public class MyModel
{
    [Column("ColumnName")]
    public string MyProperty { get; set; }
}
  1. If the property name and column name match, but you still get the error, you can check if the property is marked as [NotMapped]. If it is, remove the attribute to include the property in the mapping. Here’s an example:
public class MyModel
{
    public int Id { get; set; }
    
    [NotMapped]
    public string MyProperty { get; set; }
}
  1. If none of the above solutions work, you can try updating your Entity Framework version or checking if there are any missing references or configurations.

By following these steps, you should be able to fix the Entity Framework error «Error 11009: Property ‘ ‘ is not mapped» by checking if the property name and database column name match.

To improve an older project I am forced by the circumstances to use VS 2008 and Framework 3.5 — I have issues with the edmx showing bizarre behavior and not updating the entities as required.

The edmx throws me the above error, but when I go to the respective table and right click it — «Update Model from Database» there is no change, the error is still there.

If I delete the table from the diagram by selecting it and pressing del, then in the Model Browser It disappears from the .Database but when clicking «Update model from Database» I can’t see i in the «Add» list, all I can do is «Refresh» the table since I still see it in the refresh list (which should not happen because I deleted it! )

ROMANIA_engineer's user avatar

asked Oct 8, 2012 at 11:02

Amc_rtty's user avatar

3

I had this issue when I changed a column name from CampaignKey to CampaignCode. After making the DB change, I went to the .edmx designer, right clicked and chose Update Model from Database. Then when I compiled I got the error:

Error 11009: Property CampaignKey is not mapped.

Taking a closer look at my table in the designer showed me that Visual Studio had created the new field CampaignCode as in the DB. But it also had left the old field CampaignKey in there, causing the error as it no longer exists in the DB.

To fix the issue, I right-clicked on the CampaignKey field in my table in the designer and selected Delete.

After that I saved the .edmx, compiled and the error was gone.

Mosh Feu's user avatar

Mosh Feu

28.2k16 gold badges86 silver badges135 bronze badges

answered Aug 26, 2013 at 20:54

tjp69's user avatar

tjp69tjp69

1,0689 silver badges13 bronze badges

2

Check the xml file of your model, it’s probably still in there somewhere. Try deleting it manually from that XML file, then try to update again. Be sure to take backups though.

Frank Visaggio's user avatar

answered Oct 8, 2012 at 21:22

Thousand's user avatar

ThousandThousand

6,5423 gold badges38 silver badges46 bronze badges

3

I have gotten this same error before when column names on tables or views change case. For example, if a view has a column named «OrderID» and then the column name is changed to «OrderId» then it will give the error ‘Property «OrderID» is not mapped’. This can be resolved by changing the case back to how it exists in the model.

answered Apr 3, 2013 at 22:55

Dave's user avatar

DaveDave

3,2631 gold badge17 silver badges15 bronze badges

I opened the edmx file in Notepad and deleted the incorrect field. I then updated the model again in the designer

answered Apr 23, 2014 at 9:18

Chazza's user avatar

ChazzaChazza

2263 silver badges10 bronze badges

1

At times, upgrading a project throws up errors.

Just make sure you have backed up all your data, just-in-case.

When we add entity model into our project, it adds a corresponding connection string to web.config. Now, when you delete the model from project, even then the connection string still resides there in the web.config.

So, take the following steps:

  1. Delete the model
  2. Delete the corresponding connection string from web.config
  3. Now, perform the steps to add the model again from scratch.

Hopefully, it should work.

answered Oct 8, 2012 at 11:24

Viral Jain's user avatar

Viral JainViral Jain

1,0061 gold badge14 silver badges30 bronze badges

2

I know this question was about VS 2008 and ‘recovering’ a model, but for anyone who finds this like I did when I had the same Error 11009 in VS 2015, I first tried the «Update Model from Database» to no avail, then I finally fixed it by right-clicking the model table in the .edmx design and choosing Table Mapping. I did not have to delete the model. My model is associated with a db table.

answered Jan 31, 2017 at 23:46

hullflyer's user avatar

1

The easiest way I’ve found to deal with this is to find the model/table with the unmapped property in the edmx. Select it and delete it. Save your edmx and then update it again, adding the model back in from the database. Deleting just the unmapped property didn’t work for me.

answered Jan 14, 2020 at 11:56

Hazza's user avatar

HazzaHazza

6,4113 gold badges24 silver badges37 bronze badges

I had the same error when I changed a column name in the database and updated the database from the model. I was unable to find the original name anywhere in the solution. I solved it by simply

  1. deleting the table from the model (right-click on the table, hit delete),
  2. updating the model from the database (right-click on edmx background, select «Update Model From Database», Add changed table).

answered Apr 8, 2015 at 17:42

CindyH's user avatar

CindyHCindyH

2,9762 gold badges24 silver badges37 bronze badges

In my case I added a new scalar property named sys_user_id to an existing table in the Designer inside Visual Studio. I didn’t update the Model from the Database because that was causing a lot of errors in the designer. I just wanted to map a single column that was added to a given table on the database side.

The problem is that after doing this I started getting the following exception:

  • InnerException {«rnModels.ShardData.msl(352,10) : error 3004: Problem in mapping fragments starting at line 352: No mapping
    specified for properties table_name.sys_user_id in Set
    table_name.rnAn Entity with Key (PK) will not round-trip when:rn
    Entity is type [ShardDB.table_name]rn»} System.Exception
    {System.Data.Entity.Core.MappingException}

In Visual Studio what was being shown in the Error List window was: Error 11009: Property ' ' is not mapped

What I did to fix this was the following:

  1. Opened the .edmx file in Visual Studio Code;
  2. Searched for the offending table_name;
  3. Added the missing mappings where appropriate.

It was missing the mappings in 2 places:

<EntityType Name="table_name">
    <Key>
        <PropertyRef Name="user_id" />
    </Key>
    <Property Name="user_id" Type="int" Nullable="false" />
    <Property Name="tenant_id" Type="int" />
    ... ALL OTHER COLUMNS HERE ...
    <Property Name="sys_user_id" Type="int" Nullable="true" /> <= WAS MISSING THIS AND SO I HAD TO ADD IT BY HAND
</EntityType>

and

<EntitySetMapping Name="table_name">
  <EntityTypeMapping TypeName="ShardDB.table_name">
    <MappingFragment StoreEntitySet="table_name">
      <ScalarProperty Name="user_id" ColumnName="user_id" />
      <ScalarProperty Name="tenant_id" ColumnName="tenant_id" />
      ... ALL OTHER COLUMNS HERE ...
      <ScalarProperty Name="sys_user_id" ColumnName="sys_user_id" /> <= WAS MISSING THIS AND SO I HAD TO ADD IT BY HAND
    </MappingFragment>
  </EntityTypeMapping>
</EntitySetMapping>

After changing it in Visual Studio Code and getting back to Visual Studio it asked me to reload the .edmx file since it was modified. Reloaded and then hit F5 to run the code. It started working as expected.

answered Sep 23, 2019 at 17:01

Leniel Maccaferri's user avatar

Leniel MaccaferriLeniel Maccaferri

99.8k46 gold badges367 silver badges478 bronze badges

1

I had the same issue with Visual Studio 2017 and Entity Framework 6 on a Database First model, upon refreshing it to get new columns.

I tried everything above but the only thing that worked was to delete the EDMX and generate a new one.

answered Oct 18, 2017 at 15:34

chakeda's user avatar

chakedachakeda

1,5411 gold badge18 silver badges39 bronze badges

I have this error (Error 3007: Problem in mapping fragments starting at lines … ) , after add a table to .edmx

First I delete the last added table, then I re-update the model wiht that table, but checking the ‘include foreing key checkbox:

enter image description here

answered Mar 9, 2018 at 16:45

Condemateguadua's user avatar

Entity Framework error — Error 11009: Property is not mapped

The reason for this error is there is no proper sync between the DB and the .edmx file.

Solution 1

Delete the model from the .edmx file and add it again.

Solution 2

Edit the .edmx file by right clicking it.

Add the updated/new property at the two following places;

Under:

<EntityType Name="TableName">
<Property Name="SaleFinYear" Type="varchar" MaxLength="50" />

Under`:

<MappingFragment StoreEntitySet="TableName">
<ScalarProperty Name="SaleFinYear" ColumnName="SaleFinYear" />

For more details with screenshots check — here

JBES's user avatar

JBES

1,48711 silver badges17 bronze badges

answered May 16, 2020 at 16:24

Rahul Shakya's user avatar

when you change the name of your column and try to update to the database, it loses its mapping.

Solution:
1- right-click on the table that has property not mapped at.
2- select the table mapping option.
3- you will find the not mapped property doesn’t have mapping.
enter image description here

answered Oct 13, 2021 at 10:45

Mohamed Elhakim's user avatar

Mohamed ElhakimMohamed Elhakim

1941 gold badge2 silver badges7 bronze badges

Try to mape it in the xml file of your model :

<ScalarProperty Name="CampaignKey" ColumnName="CampaignKey" />

It works for me.

Eric Aya's user avatar

Eric Aya

69.5k35 gold badges181 silver badges252 bronze badges

answered Mar 1, 2022 at 16:28

Louanes Fennouche's user avatar

1

Чтобы улучшить старый проект, обстоятельства вынуждают меня использовать VS 2008 и Framework 3.5 — у меня есть проблемы с тем, что edmx показывает странное поведение и не обновляет объекты по мере необходимости.

Edmx выдает мне вышеуказанную ошибку, но когда я перехожу к соответствующей таблице и щелкаю ее правой кнопкой мыши — «Обновить модель из базы данных» нет изменений, ошибка все еще существует.

Если я удалю таблицу с диаграммы, выбрав ее и нажав del, то в обозревателе моделей она исчезнет из базы данных, но при нажатии «Обновить модель из базы данных» я не вижу i в списке «Добавить», все я можно «Обновить» таблицу, поскольку я все еще вижу ее в списке обновлений (чего не должно происходить, потому что я удалил ее!)

14 ответов

Лучший ответ

Проверьте xml-файл вашей модели, вероятно, он все еще где-то там. Попробуйте удалить его вручную из этого XML-файла, а затем повторите попытку. Но обязательно сделайте резервные копии.


54

Frank Visaggio
23 Мар 2016 в 00:14

Когда вы меняете имя своего столбца и пытаетесь обновить базу данных, он теряет свое отображение.

Решение: 1- щелкните правой кнопкой мыши таблицу, свойство которой не сопоставлено. 2- выберите опцию сопоставления таблицы. 3 — вы обнаружите, что у не отображаемого свойства нет сопоставления. введите описание изображения здесь


0

Mohamed Elhakim
13 Окт 2021 в 13:45

Попробуйте отобразить его в xml-файле вашей модели:

<ScalarProperty Name="CampaignKey" ColumnName="CampaignKey" />

Меня устраивает.


0

Eric Aya
1 Мар 2022 в 20:55

У меня возникла эта проблема, когда я изменил имя столбца с CampaignKey на CampaignCode. После изменения БД я пошел к конструктору .edmx, щелкнул правой кнопкой мыши и выбрал Обновить модель из базы данных . Затем, когда я скомпилировал, я получил ошибку:

Ошибка 11009: свойство CampaignKey не сопоставлено.

Присмотревшись к моей таблице в конструкторе, я понял, что Visual Studio создала новое поле CampaignCode, как в БД. Но он также оставил там старое поле CampaignKey, что вызвало ошибку, поскольку оно больше не существует в БД.

Чтобы решить эту проблему, я щелкнул правой кнопкой мыши поле CampaignKey в своей таблице в конструкторе и выбрал Удалить .

После этого я сохранил .edmx, скомпилировал и ошибка исчезла.


54

Mosh Feu
19 Июл 2016 в 10:52

Иногда при обновлении проекта возникают ошибки.

Просто убедитесь, что вы сделали резервную копию всех своих данных, на всякий случай.

Когда мы добавляем модель сущности в наш проект, она добавляет соответствующую строку подключения в web.config . Теперь, когда вы удаляете модель из проекта, даже тогда строка подключения все еще находится в файле web.config.

Итак, сделайте следующие шаги:

  1. Удалить модель
  2. Удалите соответствующую строку подключения из web.config
  3. Теперь выполните шаги, чтобы снова добавить модель с нуля.

Надеюсь, это должно сработать.


2

Viral Jain
8 Окт 2012 в 15:24

Я открыл файл edmx в Блокноте и удалил неправильное поле. Затем я снова обновил модель в дизайнере


2

Chazza
23 Апр 2014 в 13:18

Я знаю, что этот вопрос касался VS 2008 и «восстановления» модели, но для тех, кто находит это, как я, когда у меня была такая же ошибка 11009 в VS 2015, я сначала попробовал «Обновить модель из базы данных» безрезультатно, а затем Я, наконец, исправил это, щелкнув правой кнопкой мыши таблицу модели в дизайне .edmx и выбрав Отображение таблиц. Удалять модель не пришлось. Моя модель связана с таблицей БД.


2

hullflyer
1 Фев 2017 в 02:46

У меня была такая же ошибка, когда я изменил имя столбца в базе данных и обновил базу данных из модели. Мне не удалось найти оригинальное имя в решении. Я решил это просто

  1. удаление таблицы из модели (щелкните правой кнопкой мыши по таблице, нажмите удалить),
  2. обновление модели из базы данных (щелкните правой кнопкой мыши фон edmx, выберите «Обновить модель из базы данных», «Добавить измененную таблицу»).


1

CindyH
8 Апр 2015 в 20:42

У меня была такая же проблема с Visual Studio 2017 и Entity Framework 6 в модели Database First после обновления для получения новых столбцов.

Я пробовал все, что описано выше, но единственное, что сработало, — это удалить EDMX и сгенерировать новый.


0

chakeda
18 Окт 2017 в 18:34

У меня есть эта ошибка (ошибка 3007: проблема с отображением фрагментов, начинающихся со строк …) после добавления таблицы в .edmx

Сначала я удаляю последнюю добавленную таблицу, затем повторно обновляю модель с этой таблицей, но проверяю флажок ‘include foreing key’:

enter image description here


0

Condemateguadua
9 Мар 2018 в 19:45

В моем случае я добавил новое скалярное свойство с именем sys_user_id в существующую таблицу в конструкторе внутри Visual Studio. Я не обновлял модель из базы данных, потому что это вызывало много ошибок в дизайнере. Я просто хотел отобразить один столбец, который был добавлен в данную таблицу на стороне базы данных.

Проблема в том, что после этого я начал получать следующее исключение:

  • InnerException {» r nModels.ShardData.msl (352,10): ошибка 3004: проблема при сопоставлении фрагментов, начинающихся со строки 352: сопоставление отсутствует указан для свойств table_name.sys_user_id в Set table_name. r nСущность с ключом (PK) не будет возвращаться, когда: r n Тип объекта [ShardDB.table_name] r n «} System.Exception {System.Data.Entity.Core.MappingException}

В Visual Studio в окне Error List отображалось следующее: Error 11009: Property ' ' is not mapped

Я сделал следующее, чтобы исправить это:

  1. Открыл файл .edmx в Visual Studio Code;
  2. Искал обидного table_name;
  3. При необходимости добавлены недостающие сопоставления.

В двух местах отсутствовали сопоставления:

<EntityType Name="table_name">
    <Key>
        <PropertyRef Name="user_id" />
    </Key>
    <Property Name="user_id" Type="int" Nullable="false" />
    <Property Name="tenant_id" Type="int" />
    ... ALL OTHER COLUMNS HERE ...
    <Property Name="sys_user_id" Type="int" Nullable="true" /> <= WAS MISSING THIS AND SO I HAD TO ADD IT BY HAND
</EntityType>

А также

<EntitySetMapping Name="table_name">
  <EntityTypeMapping TypeName="ShardDB.table_name">
    <MappingFragment StoreEntitySet="table_name">
      <ScalarProperty Name="user_id" ColumnName="user_id" />
      <ScalarProperty Name="tenant_id" ColumnName="tenant_id" />
      ... ALL OTHER COLUMNS HERE ...
      <ScalarProperty Name="sys_user_id" ColumnName="sys_user_id" /> <= WAS MISSING THIS AND SO I HAD TO ADD IT BY HAND
    </MappingFragment>
  </EntityTypeMapping>
</EntitySetMapping>

После изменения его в Visual Studio Code и возвращения в Visual Studio он попросил меня перезагрузить файл .edmx, поскольку он был изменен. Перезагрузите, а затем нажмите F5, чтобы запустить код. Все заработало как положено.


0

Leniel Maccaferri
23 Сен 2019 в 20:01

Самый простой способ, который я нашел, — это найти модель / таблицу с неотображенным свойством в edmx. Выберите его и удалите. Сохраните ваш edmx, а затем обновите его снова, добавив модель обратно из базы данных. Удаление только неотмеченного свойства у меня не сработало.


0

Hazza
14 Янв 2020 в 14:56

Ошибка Entity Framework — Error 11009: Property is not mapped

Причина этой ошибки в том, что нет надлежащей синхронизации между БД и файлом .edmx .

Решение 1

Удалите модель из файла .edmx и добавьте ее снова.

Решение 2

Отредактируйте файл .edmx , щелкнув его правой кнопкой мыши.

Добавьте обновленное / новое свойство в двух следующих местах;

Под:

<EntityType Name="TableName">
<Property Name="SaleFinYear" Type="varchar" MaxLength="50" />

Под`:

<MappingFragment StoreEntitySet="TableName">
<ScalarProperty Name="SaleFinYear" ColumnName="SaleFinYear" />

Для получения дополнительной информации с проверкой снимков экрана — здесь


0

JBES
17 Май 2020 в 03:08

Я получал ту же ошибку раньше, когда имена столбцов в таблицах или представлениях меняют регистр. Например, если в представлении есть столбец с именем «OrderID», а затем имя столбца изменено на «OrderId», то будет выдана ошибка «Свойство« OrderID »не сопоставлено». Это можно решить, вернув корпус к тому, как он существует в модели.


3

Dave
4 Апр 2013 в 02:55

Чтобы улучшить старый проект, я вынужден обстоятельствами использовать VS 2008 и Framework 3.5. У меня возникают проблемы с edmx, показывающим странное поведение и не обновляющее сущности по мере необходимости.

Edmx выдает мне вышеприведенную ошибку, но когда я перехожу в соответствующую таблицу и щелкаю ее правой кнопкой мыши — «Обновить модель из базы данных» нет никаких изменений, ошибка все еще существует.

Если я удалю таблицу из диаграммы, выбрав ее и нажав del, тогда в обозревателе моделей она исчезнет из базы .Database, но при нажатии «Обновить модель из базы данных» я не вижу я в списке «Добавить», все, что я могу сделать, это «Обновить» таблицу, так как я все еще вижу ее в списке обновлений (чего не должно быть, потому что я удалил ее!)

08 окт. 2012, в 13:35

Поделиться

Источник

8 ответов

Проверьте файл xml вашей модели, он, вероятно, все еще где-то там. Попробуйте удалить его вручную из этого файла XML, а затем попробуйте обновить его снова. Однако не забудьте сделать резервные копии.

Thousand
08 окт. 2012, в 21:32

Поделиться

У меня возникла эта проблема, когда я изменил имя столбца от CampaignKey до CampaignCode. После изменения БД я пошел в конструктор .edmx, щелкнул правой кнопкой мыши и выбрал Обновить модель из базы данных. Затем, когда я скомпилировал, я получил ошибку:

Ошибка 11009: Свойство CampaignKey не отображается.

Более подробно рассмотрев таблицу в дизайнере, я показал, что Visual Studio создала новое поле CampaignCode, как в БД. Но он также оставил там старое поле CampaignKey, вызывая ошибку, поскольку она больше не существует в БД.

Чтобы устранить проблему, я щелкнул правой кнопкой мыши по полю CampaignKey в моей таблице в дизайнере и выбрал Удалить.

После этого я сохранил .edmx, скомпилировал и ошибка исчезла.

tjp69
26 авг. 2013, в 22:27

Поделиться

Я получил эту же ошибку до того, как изменится регистр имен столбцов в таблицах или представлениях. Например, если в представлении есть столбец с именем «OrderID», а затем имя столбца изменяется на «OrderId», тогда он выдаст ошибку «Property» OrderID «не отображается». Это можно решить, изменив случай на то, как оно существует в модели.

Dave
03 апр. 2013, в 23:18

Поделиться

Я открыл файл edmx в Notepad и удалил неправильное поле. Затем я обновил модель еще раз в дизайнере

Chazza
23 апр. 2014, в 10:15

Поделиться

Иногда обновление проекта вызывает ошибки.

Просто убедитесь, что вы скопировали все свои данные в любом случае.

Когда мы добавляем модель сущности в наш проект, она добавляет соответствующую строку для подключения к web.config. Теперь, когда вы удаляете модель из проекта, даже тогда строка соединения все еще находится там в web.config.

Итак, сделайте следующие шаги:

  • Удалить модель
  • Удалить соответствующую строку подключения из web.config
  • Теперь выполните шаги, чтобы снова добавить модель с нуля.

Надеюсь, он должен работать.

Viral Jain
08 окт. 2012, в 13:06

Поделиться

У меня была такая же ошибка, когда я изменил имя столбца в базе данных и обновил базу данных из модели. Мне не удалось найти исходное имя в любом месте решения. Я решил это просто

  • удаление таблицы из модели (щелкните правой кнопкой мыши по таблице, нажмите delete),
  • обновление модели из базы данных (щелкните правой кнопкой мыши на фоне edmx, выберите «Обновить модель из базы данных», «Добавить измененную таблицу» ).

CindyH
08 апр. 2015, в 18:52

Поделиться

У меня была такая же проблема с Visual Studio 2017 и Entity Framework 6 в первой модели базы данных, обновив ее, чтобы получить новые столбцы.

Я пробовал все выше, но единственное, что работало, это удалить EDMX и создать новый.

chakeda
18 окт. 2017, в 15:37

Поделиться

Я знаю, что этот вопрос касался VS 2008 и «восстановления» модели, но для тех, кто находит это, как я сделал, когда у меня была такая же ошибка 11009 в VS 2015, я сначала попробовал «Обновить модель из базы данных» до no avail, затем я, наконец, исправил его, щелкнув правой кнопкой мыши таблицу модели в проекте .edmx и выбрав Table Mapping. Мне не нужно было удалять модель. Моя модель связана с таблицей db.

hullflyer
31 янв. 2017, в 23:47

Поделиться

Ещё вопросы

  • 0C ++ — загрузка очень большого набора данных в ОЗУ
  • 1AOS 4.x ошибка с анимацией
  • 1SQLite, если вход существует в базе данных, пропустить или перезаписать существующий
  • 0Изменить размер Div динамически
  • 0MySQL два внешних ключа из одной таблицы
  • 0Создать виджет из другого в качестве прототипа
  • 1Почему новый сеанс создается до того, как я войду в систему?
  • 1Vue — Как сохранить поток данных от бабушки и дедушки к внуку?
  • 0Лучший способ для двух последовательных таблиц SELECT
  • 1Эффект ряби на фоне формы на кнопке
  • 0Java — Spring Boot — Mysql / Java — Получить тип транспортного средства из столбца таблицы и получить их общее количество (КОЛИЧЕСТВО) из другой таблицы
  • 1Оптимизация хвостового вызова в JavaScript не работает
  • 0Свойства контроллера привязки в области изоляции
  • 0Редактировать в состоянии выбрать поле с группировкой в настройках
  • 0Scanf и строки в C ++
  • 0Кодировка сервера Mysql отличается от кодировки клиента (latin1 vs utf8mb4). Насколько плохо?
  • 1Приложение возвращается к неправильной активности после выхода из намерения камеры
  • 0Заголовок и элементы данных в одной строке, используя set_template в CodeIgniter
  • 1Свободный запрос за пределами просроченного соединения
  • 1Регулярное выражение Javascript для соответствия всем символам & в тексте, игнорируя такие кодировки, как & # 41 ;, & nbsp; и т.д
  • 0C передать ссылку на параметр
  • 1Функция apply (), вызываемая на Function.prototype.bind в JavaScript?
  • 1Запустите функцию обратного вызова после завершения forEach
  • 1Загрузка файлов с помощью ExtJS и Jersey
  • 1Ошибка установленного значения Xpages?
  • 1Запутывание, e.StackTrace не читается
  • 0Объединить 2 ассоциативных массива путем сопоставления значения подмассива?
  • 0Добавление пользовательских атрибутов в шаблон ejs
  • 1Передача метода в lodash с помощью vue дает ‘Ожидаемая функция’
  • 0Преобразование SQL-сценария оракула в MySQL
  • 0Сессионизация на основе событий, а не временных меток с MySQL
  • 1HTML 5 Геолокация не работает в Safari
  • 1Office 365 надстройка Javascript — синтез речи
  • 0Входные параметры как HEX из командной строки
  • 0Предупреждение: атрибут <td> с отсутствующей конечной кавычкой
  • 1D3 с пользовательским элементом: TypeError: t is null
  • 0boost :: asio полнодуплексная связь
  • 0Руководство Angular.js по запуску теста e2e с использованием транспортира
  • 1Как использовать kotlin.system с Kotlin Native?
  • 0Обновление разделов страницы после замены фильтра
  • 0Проблема с функцией jQuery .click
  • 0SFML отправка пакетов с использованием неработающих структур
  • 0Угловой выбор помнить при перемещении по представлениям
  • 0AngularJS — не может изменить значение поля ввода
  • 1Как сделать v-for итерацию в определенном порядке?
  • 0Динамически применять атрибуты к элементам DOM в ngRepeat в директиве
  • 0Упорядочение двух таблиц по одной дате с PHP, MYSQL (PDO)
  • 0Мои значки не будут отображаться в моем нижнем колонтитуле
  • 1Moq — Как шагнуть в реальный метод?
  • 0Как показать адрес электронной почты пользователя от MYSQL?

Сообщество Overcoder

Чтобы улучшить старый проект, я вынужден в силу обстоятельств использовать VS 2008 и Framework 3.5 — у меня есть проблемы с edmx, показывающим странное поведение и не обновляющим сущности по мере необходимости.

Edmx выдает мне вышеупомянутую ошибку, но когда я иду к соответствующей таблице и щелкаю правой кнопкой мыши по ней — «Обновление модели из базы данных» нет изменений, ошибка все еще там.

Если я удаляю таблицу из диаграммы, выбирая ее и нажимая del, то в Обозревателе моделей она исчезает из базы данных. Но при нажатии «Обновить модель из базы данных» я не вижу себя в списке «Добавить», все можно сделать «Обновить» таблицу, так как я все еще вижу ее в списке обновлений (что не должно произойти, потому что я удалил ее!)

2012-10-08 11:02

14
ответов

Решение

Проверьте XML-файл вашей модели, он, вероятно, еще где-то там. Попробуйте удалить его вручную из этого XML-файла, а затем повторите попытку обновления. Обязательно сделайте резервные копии, хотя.

2012-10-08 21:22

У меня была эта проблема, когда я изменил имя столбца с CampaignKey в CampaignCode, После внесения изменений в базу данных я перешел к .edmx дизайнер, щелкнул правой кнопкой мыши и выбрал » Обновить модель из базы данных». Затем, когда я скомпилировал, я получил ошибку:

Ошибка 11009: свойство CampaignKey не отображается.

При более внимательном рассмотрении моей таблицы в конструкторе я понял, что Visual Studio создала новое поле CampaignCode как в БД. Но он также покинул старое поле CampaignKey там, вызывая ошибку, так как она больше не существует в БД.

Чтобы решить эту проблему, я щелкнул правой кнопкой мыши на CampaignKey поле в моей таблице в конструкторе и выбрал Удалить.

После этого я сохранил .edmx, скомпилировал и ошибка пропала.

2013-08-26 20:54

Я открыл файл EDMX в блокноте и удалил неправильное поле. Затем я снова обновил модель в конструкторе

2014-04-23 09:18

Я получил эту же ошибку раньше, когда имена столбцов в таблицах или представлениях меняются. Например, если у представления есть столбец с именем «OrderID», а затем имя столбца изменяется на «OrderId», то это выдаст ошибку «Свойство» OrderID «не сопоставлено». Эту проблему можно решить, вернув случай к тому, как он существует в модели.

2013-04-03 22:55

Я знаю, что этот вопрос касался VS 2008 и «восстановления» модели, но для любого, кто находит это, как я, когда у меня была такая же Ошибка 11009 в VS 2015, я сначала попробовал «Обновить модель из базы данных», но потом Я наконец исправил это, щелкнув правой кнопкой мыши по таблице моделей в дизайне.edmx и выбрав Table Mapping. Мне не пришлось удалять модель. Моя модель связана с таблицей БД.

2017-01-31 23:46

Иногда обновление проекта приводит к ошибкам.

Просто убедитесь, что вы сделали резервную копию всех своих данных, на всякий случай.

Когда мы добавляем модель сущностей в наш проект, она добавляет соответствующую строку соединения в web.config. Теперь, когда вы удаляете модель из проекта, даже тогда строка подключения все еще находится там в файле web.config.

Итак, сделайте следующие шаги:

  1. Удалить модель
  2. Удалить соответствующую строку подключения из web.config
  3. Теперь выполните шаги, чтобы снова добавить модель с нуля.

Надеюсь, это должно сработать.

2012-10-08 11:24

В моем случае я добавил новое скалярное свойство с именем sys_user_idв существующую таблицу в конструкторе внутри Visual Studio. Я не обновлял модель из базы данных, потому что это вызывало много ошибок в дизайнере. Я просто хотел отобразить один столбец, который был добавлен в данную таблицу на стороне базы данных.

Проблема в том, что после этого я начал получать следующее исключение:

  • InnerException {» r nModels.ShardData.msl(352,10): ошибка 3004: проблема при сопоставлении фрагментов, начинающихся со строки 352: сопоставление не указано для свойств table_name.sys_user_id в Set
    table_name. R nAn Entity with Key (PK) не будет возвращаться, когда:rn Сущность имеет тип [ShardDB.table_name]rn»} System.Exception
    {System.Data.Entity.Core.MappingException}

В Visual Studio то, что показывалось в Error List окно было: Error 11009: Property ' ' is not mapped

Чтобы исправить это, я сделал следующее:

  1. Открыл .edmx файл в Visual Studio Code;
  2. Искал обидчика table_name;
  3. При необходимости добавлены недостающие сопоставления.

В двух местах отсутствовали сопоставления:

<EntityType Name="table_name">
    <Key>
        <PropertyRef Name="user_id" />
    </Key>
    <Property Name="user_id" Type="int" Nullable="false" />
    <Property Name="tenant_id" Type="int" />
    ... ALL OTHER COLUMNS HERE ...
    <Property Name="sys_user_id" Type="int" Nullable="true" /> <= WAS MISSING THIS AND SO I HAD TO ADD IT BY HAND
</EntityType>

а также

<EntitySetMapping Name="table_name">
  <EntityTypeMapping TypeName="ShardDB.table_name">
    <MappingFragment StoreEntitySet="table_name">
      <ScalarProperty Name="user_id" ColumnName="user_id" />
      <ScalarProperty Name="tenant_id" ColumnName="tenant_id" />
      ... ALL OTHER COLUMNS HERE ...
      <ScalarProperty Name="sys_user_id" ColumnName="sys_user_id" /> <= WAS MISSING THIS AND SO I HAD TO ADD IT BY HAND
    </MappingFragment>
  </EntityTypeMapping>
</EntitySetMapping>

После изменения его в Visual Studio Code и возвращения в Visual Studio он попросил меня перезагрузить .edmxфайл с момента его изменения. Перезагрузите, а затем нажмите F5, чтобы запустить код. Все заработало как положено.

2019-09-23 20:01

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

  1. удаление таблицы из модели (щелкните правой кнопкой мыши по таблице, нажмите «Удалить»),
  2. Обновление модели из базы данных (щелкните правой кнопкой мыши на фоне edmx, выберите «Обновить модель из базы данных», Добавить измененную таблицу).


user12897

08 апр ’15 в 17:42
2015-04-08 17:42

2015-04-08 17:42

Самый простой способ, который я нашел, — это найти модель / таблицу с несопоставленным свойством в edmx. Выберите его и удалите. Сохраните ваш edmx, а затем обновите его снова, добавив модель обратно из базы данных. Удаление только неотмеченного свойства у меня не сработало.

2020-01-14 14:56

Попробуйте отобразить его в xml-файле вашей модели:

      <ScalarProperty Name="CampaignKey" ColumnName="CampaignKey" />

Меня устраивает.

2022-03-01 16:28

когда вы меняете имя своего столбца и пытаетесь обновить базу данных, он теряет свое отображение.

Решение:1- щелкните правой кнопкой мыши таблицу, свойство которой не сопоставлено. 2- выберите опцию сопоставления таблицы. 3- вы обнаружите, что у не отображаемого свойства нет сопоставления.

2021-10-13 13:45

У меня возникла та же проблема с Visual Studio 2017 и Entity Framework 6 в модели Database First после обновления, чтобы получить новые столбцы.

Я попробовал все выше, но единственное, что сработало, — это удалить EDMX и сгенерировать новый.

2017-10-18 15:34

У меня есть эта ошибка (Ошибка 3007: проблема в отображении фрагментов, начинающихся со строк…), после добавления таблицы в.edmx

Сначала я удаляю последнюю добавленную таблицу, затем я заново обновляю модель с этой таблицей, но отмечаю флажок «включить ключ»:

введите описание изображения здесь

2018-03-09 16:45

Ошибка Entity Framework — Error 11009: Property is not mapped

Причина этой ошибки в том, что нет надлежащей синхронизации между БД и файлом .edmx.

Решение 1

Удалите модель из файла .edmx и добавьте ее снова.

Решение 2

Отредактируйте файл .edmx, щелкнув его правой кнопкой мыши.

Добавьте обновленное / новое свойство в двух следующих местах;

Под:

<EntityType Name="TableName">
<Property Name="SaleFinYear" Type="varchar" MaxLength="50" />

Под`:

<MappingFragment StoreEntitySet="TableName">
<ScalarProperty Name="SaleFinYear" ColumnName="SaleFinYear" />

Подробнее со скриншотами — здесь.

2020-05-16 19:24

Я хотел добавить новое свойство в одну из моих моделей (таблицу). По сути, это свойство, которого нет в базе данных, но мне нужно добавить его в мою модель, чтобы инструмент пользовательской генерации (генератор сущностей с автоматическим отслеживанием) создавал свойство внутри пользовательского сгенерированного файла.

Я добавил свойство масштабирования, это строка и вызвал testme, но это дает мне следующую ошибку: кто-нибудь знает, как я могу это исправить?

Ошибка 2538 Ошибка 11009: Свойство testme не сопоставлено.

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

Любая помощь действительно ценится

Спасибо

Понравилась статья? Поделить с друзьями:
  • Ошибка 1102 kyocera при сканировании на почту яндекс
  • Ошибка 1091 mysql
  • Ошибка 11003 3 на экскаваторе хитачи
  • Ошибка 1102 kyocera при сканировании как исправить
  • Ошибка 10902 на шкода октавия а7