An error occurred while updating the entries see the inner exception for details перевести

Исключение при попытке добавить элемент в БД (entity framework) C# Решение и ответ на вопрос 1828978

olegall

0 / 0 / 0

Регистрация: 27.01.2014

Сообщений: 116

1

18.10.2016, 15:47. Показов 22941. Ответов 6

Метки нет (Все метки)


Пытаюсь сохранить объект в БД:

C#
1
2
3
4
5
6
7
8
9
10
      public void Add(EntityModels entity)
        {
            //dbContext.Database.ExecuteSqlCommand("INSERT INTO dbo.Entities (CategoryId, Applicability, Number, Name, Engineer, Text, PathToPDF, PathToImage) VALUES ('" + entity.CategoryId + "', '" + entity.Applicability + "', '" + entity.Number + "', '" + entity.Name + "', '" + entity.Engineer + "', '" + entity.Text + "', '" + entity.PathToPDF + "', '" + entity.PathToImage + "')");
            //entity.PathToPDF = "";
            dbContext.Entities.Add(entity);
            dbContext.Entry(entity).State = System.Data.Entity.EntityState.Added;
            dbContext.Entry(entity).State = System.Data.Entity.EntityState.Modified;
            dbContext.Configuration.AutoDetectChangesEnabled = true;
            dbContext.SaveChanges();
        }

получаю исключение:

An exception of type ‘System.Data.Entity.Infrastructure.DbUpdateExcepti on’ occurred in EntityFramework.dll but was not handled in user code на методе SaveChanges

Additional information: An error occurred while updating the entries. See the inner exception for details.

все поля модели и таблицы БД соответствуют друг другу (типы, их число и названия), делал повторно миграцию — всё чисто.
NULL-в сохраняемых данных нет.
Причём занесение данных через прямой sql запрос (1-я закомментированная строка) проходит корректно. Эксперименторивал с комбинациями строк 3,4,5 метода. Гуглил — не помогло. Как отлаживать такие ошибки?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



783 / 615 / 272

Регистрация: 04.08.2015

Сообщений: 1,707

18.10.2016, 17:32

2

Цитата
Сообщение от olegall
Посмотреть сообщение

dbContext.Entry(entity).State = System.Data.Entity.EntityState.Added;
dbContext.Entry(entity).State = System.Data.Entity.EntityState.Modified;

Какой смысл одному свойству дважды присваивать значение? Останется то, что во 2-й строке.
Вангую, что вы новую запись принудительно объявляете модифицированной. После этого вместо Insert пытается выполниться Update, который не проходит.



0



0 / 0 / 0

Регистрация: 27.01.2014

Сообщений: 116

18.10.2016, 18:29

 [ТС]

3

строки 6,7,8 я поочерёдно комментировал в разных комбинациях
Added не проходит



0



91 / 90 / 37

Регистрация: 05.08.2011

Сообщений: 428

18.10.2016, 19:05

4

olegall, комментируйте разом. 6,7,8 строки. Где-то до этого в коде отключаете авто детект изменений?
Для чего, сначала добавляете сущность (5 строка), стандартно она будет помечена добавленной, затем помечаете её добавленной (6 строка), затем обновленной (7 строка), потом включаете детект изменений (8 строка). Последнее вообще не понятно для чего.
+ в сообщении ошибки указано:

Цитата
Сообщение от olegall
Посмотреть сообщение

See the inner exception for details.

Вы смотрели? Что там написано?



0



olegall

0 / 0 / 0

Регистрация: 27.01.2014

Сообщений: 116

19.10.2016, 09:27

 [ТС]

5

Где-то до этого в коде отключаете авто детект изменений?

— это не понял. я ничего подобного вроде не делал

Inner exception: Invalid object name ‘dbo.EntityModels’. — видимо означает попытка обращения к таблице в БД EntityModels. Но такой таблицы нет (есть Entities). Причём я помню что такая таблица как-то появлялась, и я её удалял. Возможно эта инфо сохранилась в кеше или ещё где-то. Поиск в проекте по строке «dbo.EntityModels» ничего не дал

Добавлено через 6 минут
Контекст:

C#
1
2
3
4
5
6
7
namespace Engine.Models
{
    public class EntityContext : DbContext
    {
        public DbSet<EntityModels> Entities { get; set; }
    }
}

Добавлено через 16 минут
UPD:
я создал таблицу EntityModels — клон Entities — и исключение пропало. Как теперь избавить проект от информации о таблице
EntityModels? Я удалял папку migrations, создал миграцию заново — не помогло



0



lvlkoo

.NET C#,ASP.NET MVC

Эксперт .NET

592 / 503 / 225

Регистрация: 16.10.2010

Сообщений: 1,902

19.10.2016, 17:07

6

olegall, название таблицы определяется не названием свойства в контексте, а названием сущности.

То есть если у вас сущность называется EntityModels, то и таблица будет называться EntityModels.

Название табицы можно указать явно, с помощью атрибута Table(name);

C#
1
2
3
4
5
[Table("Entities")]
class EntityModels
{
    .....
}

А лучше просто переименуйте сущность EntityModels в Entities



0



olegall

0 / 0 / 0

Регистрация: 27.01.2014

Сообщений: 116

20.10.2016, 11:03

 [ТС]

7

Сделал так

C#
1
2
3
4
5
[Table("Entities")]
class EntityModels
{
    .....
}

при выполнении миграций (команда Update-Database) возникает ошибка
Either the parameter @objname is ambiguous or the claimed @objtype (OBJECT) is wrong

Пробовал переименовать таблицу Entities, но новая таблица не создаётся. Не знаю что делать



0



Turn the Pluralization On. The problem is that you model object are using singular name (Pupil) convention, while in your database you are using pluralized names Pupils with s.

UPDATE

This post shows how can you turn it on or off.
Some relevant excerpt of that post:

To turn pluralization on and off

  • On the Tools menu, click Options.

  • In the Options dialog box, expand Database Tools.
    Note: Select Show all settings if the Database Tools node is not visible.

  • Click O/R Designer.

  • Set Pluralization of names to Enabled = False to set the O/R Designer so that it does not change class names.

  • Set Pluralization of names to Enabled = True to apply pluralization rules to the class names of objects added to the O/R Designer.

UPDATE 2

But note that, you should avoid pluralized names.
You can read here how to do it (I’ll cite it here, just in case the link gets broken).

(…) When you work with Entity Framework Code First approach, you are creating your database tables from your model classes. Usually Entity Framework will create tables with Pluralized names. that means if you have a model class called PhoneNumber, Entity framework will create a table for this class called “PhoneNumbers“. If you wish to avoid pluralized name and wants singular name like Customer , you can do it like this
In your DBContext class, Override the “OnModelCreating” method like this (…)

enter image description here

(…) Having this Method Overriding will avoid creating tables with pluralized names. Now it will create a Table called “PhoneNumber” , Not “PhoneNumbers” (…)

  • Remove From My Forums
  • Question

  • Hello All,

    Am having this error when calling SaveChanges() : An error occurred while updating the entries. See the inner exception
    for details. when use sql server profiler to inspect the query I found that Entity framework is trying to insert a value in column set as Identity in the concerned table.

    How can prevent Entity framework from inserting in that field?

    Thanks

Answers

  • Hi,

    Here you have a link explaining this attribute:

    http://www.devart.com/blogs/dotconnect/?p=5444

    The explanation was for Oracle providers, but the idea is the same for SQL Server.

    Basically, with this attribute you say to EF that this field must set its values from its corresponding database identity value.

    Best regards,

    JA Reyes.


    Please remember to Vote & «Mark As Answer» if this post is helpful to you.
    Por favor, recuerda Votar y «Marcar como respuesta» si la solución de esta pregunta te ha sido útil.

    • Marked as answer by

      Monday, September 26, 2011 6:12 AM

  • Remove From My Forums
  • Question

  • Hello All,

    Am having this error when calling SaveChanges() : An error occurred while updating the entries. See the inner exception
    for details. when use sql server profiler to inspect the query I found that Entity framework is trying to insert a value in column set as Identity in the concerned table.

    How can prevent Entity framework from inserting in that field?

    Thanks

Answers

  • Hi,

    Here you have a link explaining this attribute:

    http://www.devart.com/blogs/dotconnect/?p=5444

    The explanation was for Oracle providers, but the idea is the same for SQL Server.

    Basically, with this attribute you say to EF that this field must set its values from its corresponding database identity value.

    Best regards,

    JA Reyes.


    Please remember to Vote & «Mark As Answer» if this post is helpful to you.
    Por favor, recuerda Votar y «Marcar como respuesta» si la solución de esta pregunta te ha sido útil.

    • Marked as answer by

      Monday, September 26, 2011 6:12 AM

Содержание

  1. Entity Framework — «Произошла ошибка при обновлении записей. Подробности см. Во внутреннем исключении» [дубликат]
  2. Обновление БД Entity Framework
  3. 2 ответа
  4. Dadaviz
  5. Ошибка An error occurred while updating — что делать
  6. Причины ошибки при загрузке обновлений
  7. Что делать при этой ошибке?
  8. Возобновляем Steam из сохранений
  9. An error occurred while updating the entries see the inner перевод
  10. Лучший отвечающий
  11. Вопрос
  12. Ответы
  13. Все ответы

Entity Framework — «Произошла ошибка при обновлении записей. Подробности см. Во внутреннем исключении» [дубликат]

У меня проблема, я только начал изучать EF Model First и какое-то время остаюсь в одной точке. У меня такая ошибка:

«Произошла ошибка при обновлении записей. Подробнее см. Внутреннее исключение»

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

Я публикую снимок экрана с Diagram / Generated DLL / Simple Main / И выбросом ошибок

Включите Pluralization On . Проблема заключается в том, что вы модель объекта используют сингулярное имя ( Pupil ) соглашение, в то время как в вашей базе данных вы используете множественные имена Pupils с s .

ОБНОВИТЬ

В этом посте показано, как его можно включить или выключить. Некоторые важные выдержки из этого поста:

Включение и выключение множественного числа

В меню «Инструменты» выберите «Параметры».

В диалоговом окне Параметры разверните Инструменты для баз данных. Примечание. Выберите «Показать все параметры», если узел «Инструменты для баз данных» не отображается.

Щелкните Конструктор O / R.

Установите для параметра Pluralization of names значение Enabled = False, чтобы настроить конструктор O / R таким образом, чтобы он не изменял имена классов.

Установите для плюрализации имен значение Enabled = True, чтобы применить правила множественного числа к именам классов объектов, добавленных в конструктор O / R.

ОБНОВЛЕНИЕ 2

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

(. ) Когда вы работаете с подходом Entity Framework Code First, вы создаете таблицы базы данных из классов модели. Обычно Entity Framework создает таблицы с именами в множественном числе. это означает, что если у вас есть класс модели с именем PhoneNumber, инфраструктура Entity создаст таблицу для этого класса с именем «PhoneNumbers». Если вы хотите избежать имени во множественном числе и хотите использовать имя в единственном числе, например «Клиент», вы можете сделать это следующим образом. В своем классе DBContext переопределите метод «OnModelCreating» следующим образом (. )

(. ) Переопределение этого метода позволит избежать создания таблиц с именами во множественном числе. Теперь он создаст таблицу под названием «PhoneNumber», а не «PhoneNumbers» (. )

Источник

Обновление БД Entity Framework

Я пытаюсь обновить свою БД, чтобы добавить в нее новые заказы. Каждый заказ связан с ProductionLine и содержит его идентификатор, а затем ProductionLine. Я считаю, что это происходит, это то, что он пытается добавить в таблицу ProductionLine, но он должен только добавлять таблицу заказов. Я не уверен, как заставить его редактировать только таблицу заказов.

Я не установил неизменным свой список ProductionLine, который запрашивался в другом операторе использования. Установка его в неизменном состоянии позволяет EF знать, что ему не нужно обновлять его, что означает, что он не пытается дублировать идентификаторы.

2 ответа

Entity Framework вставляет все записи с добавленным состоянием. Таким образом, ваша сущность тоже имеет такое же состояние, что и из-за того, что она вставлена.

Вы можете установить его состояние, используя context.Entry (prodLines.Where (x => x.Id == prodLineID) .FirstOrDefault ()). State = EntityState.Unchanged;

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

Вы можете увидеть больше информации об этом поведении в Состояния сущностей и SaveChanges

Вы уверены, что правильно настраиваете свои первичные ключи?

При добавлении public int OrderId < get; set; >к заказу
public string ProductionLineId < get; set; >на производственную линию

Я могу вставить производственную линию и ссылаться на нее из нескольких заказов.

Вы используете prodLines.Where(x => x.Id == prodLineID) , который использует свойство Id , которое не отображается в вашем классе Model.

Похоже, у вас есть свойство Id в вашем BaseEntity?

Источник

Dadaviz

Ваш IT помощник

Ошибка An error occurred while updating — что делать

Ошибка загрузки обновлений «An error occurred while updating» в Steam (для Dota 2, Counter Strike и других игр) встречается не так уж редко. Ее появление напрямую связывают с официальными обновлениями в Стим. Сами апдейты призваны не только вносить изменения в интерфейс, но и оптимизировать большое количество внутренних процессов. Игрокам данные нововведения должны помогать в игровом процессе, но не всегда все проходит гладко.

Произошла ошибка при загрузке обновлений

Причины ошибки при загрузке обновлений

Сам конфликт, как правило, возникает из-за самого клиента на компьютере пользователя. Его установка может выполняться не совсем корректно, что впоследствии мешает обновлениям интегрироваться правильно. К несчастью если файлы прервались на половине распаковки обновлений, то легко исправить ситуацию уже не получится.

Dota 2 и Counter Strike наиболее часто обновляются в приложении Steam. Именно с ними наиболее часто связана ошибка «An error occurred while updating». Проблема появляется при глобально вносимых изменениях, где обновлению подлежат сотни метров архивов. Поэтому мелкие обновления могут устанавливаться вполне себе нормально, не выявляя долгое время конфликтных ситуаций.

Что делать при этой ошибке?

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

    Перейдите в корневую папку Стима и найдите там «steamapps», в ней удалите папку «downloading». После перезагрузки пробуйте пройти в папку Steam и оттуда запустить его ярлык от имени администратора;

Удалите папку «downloading» в корне Steam

  • Отключите роутер из розетки и выключите на время ПК — далее пробуйте запустить апдейт;
  • Возможны конфликтные ситуации с вашим антивирусом, добавьте Steam в исключение;
  • Может быть ситуация блокировки антивирусом непосредственно интернет-соединения, поэтому отключите его на время. Перезапустите DNS-клиент в Службах Windows.
  • Причиной оказывается отсутствие свободного места на вашем жестком диске, освободите немного пространства;
  • Откидывать перегрузки серверов тоже не стоит, попробуйте подключиться немного позже;
  • Последним вариантом среди советов остается полная деинсталляция игр Dota 2 (Counter Strike).
  • Этими решениями следует воспользоваться в первую очередь. Если все испробовали, и ничего не помогло, тогда переходите к официальным рекомендациям разработчиков.

    Возобновляем Steam из сохранений

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

    • Выполните полное удаление всех файлов «Стима». Воспользуйтесь сторонними деинсталляторами (CCleaner, например).
    • Найдите копию «Стима» и установите на место прежней.
    • Зайдя в него в верхнем меню «Steam» вы найдете «Резервное копирование и восстановление игр». Выполните все предложенные действия и укажите путь к сохраненным играм, если их также требуется восстановить.

    Восстановление игр из созданных резервных копий

    Если на вашем ПК произошла ошибка при обновлении игр (An error occurred while updating), то стоит поочередно применить все вышеописанные методы. Также есть просьба отписаться в комментариях о результатах.

    Источник

    An error occurred while updating the entries see the inner перевод

    Лучший отвечающий

    Вопрос

    I have a super-simple screen that has one entity an a grid (that used to work). If I try to save, using the built-in button, I get:

    «An error occurred while updating the entries. See the inner exception for details.»

    It only happens in my published Azure cloud service (not on my local machine). I have not been able to figure out how to get the Inner Exception. I enabled the «Enable Created/Modified Properties» and I think that it might have something to do with that. I unchecked it and the problem still exists.

    I have not been able to get tracing to work (I have a separate question going on that issue) so I am trying to figure out how to get the actual error. Any ideas on how to get the actual error would be appreciated.

    Ответы

    I think the error was thrown by the code in the catch block because the InnerException is null.

    Yesterday, I published to Azure using a database name which did not exist. This caused LightSwitch to create a new database which should be perfect. Then I used the Azure migration wizard to copy data from my old database to the new one. I have done this before several times and it has always worked.

    I was really expecting this to fix the problem, but it did not.

    I finally figured it out: I had some validation code on the Client table. When I commented this out, the error went away. This code used to work, but for some reason it is causing the error.

    The really annoying thing is that I could never get a helpful error message and I spent a lot of time trying to figure this out.

    Thanks again for your help.

    Все ответы

    I added a «TestSave» button that executes:

    This is supposed to return all inner exceptions, but here is what I get:

    Microsoft.LightSwitch.DataServiceOperationException: An error occurred while updating the entries. See the inner exception for details.
    at Microsoft.LightSwitch.Framework.Base.ExecutableObject.Execute(Boolean allowJoin)
    at Microsoft.LightSwitch.Framework.Base.ExecutableObject.Execute()
    at Microsoft.LightSwitch.Details.Framework.Base.MethodInvocation`2.Execute()
    at Microsoft.LightSwitch.Framework.Client.ScreenObject`2.Save()
    at LightSwitchApplication.ManageClients.SaveTest_Execute()

    I still can’t tell what the error is. This is a big problem for me. Anyone have any ideas?

    I hope you dont think I am teaching Granny how to suck eggs, but the error message says to see the Inner Exception so why dont you do the following code?

    This wil at least allow you to see the inner exception.

    If you found this post helpful, please mark it as helpful. If by some chance I answered the question, please mark the question as answered. That way you will help more people like me 🙂

    Thanks for the suggestion. I tried your code and I get this:

    «An error occurred while running the command.
    Error details: Object reference not set to an instance of an object.»

    It looks like there is no inner exception. This is driving me crazy.

    Im slightly confused. I would have expected the code to have shown a message box that would have said something like:-

    An Error has occured
    Error Message: An error occured while updating the entries. See inner exception for details
    Inner Exception: Object reference not set to an instance of an object

    If you did get this then the Inner exception is the «Object reference not set to an instance of an object» line that you have been looking for. I am not sure if it was just a copypaste error but shouldn’t the save be this.Save();

    As an aside, when I have had the Object reference error in the past it is when there is a required field missing a value or you are trying to set a value to something that doesnt exist. I would just check the code that does the updates before the save to see that you are getting everything

    If you found this post helpful, please mark it as helpful. If by some chance I answered the question, please mark the question as answered. That way you will help more people like me 🙂

    I really appreciate your help. There is no code in the screen; it just has one entity and a grid. I did make some manual changes directly to the database, so that’s probably causing the problem, but I just can’t tell exactly what it is.

    Here is the code where I am trying to catch the inner exception:

    An error occurred while running the command.
    Error details: Object reference not set to an instance of an object.

    This is coming from LightSwitch and not my message. I think that it means that the ex.InnerException is null.

    So, it looks like there is no inner exception. I am starting to rebuild the database. I am not sure what else to do.

    Also, from what I have read, Exception.ToString should return info on InnerExceptions if it exists:

    «The default implementation of ToString obtains the name of the class that threw the current exception, the message, the result of calling ToString on the inner exception, and the result of calling EnvironmentStackTrace. If any of these members is , its value is not included in the returned string.

    If there is no error message or if it is an empty string («»), then no error message is returned. The name of the inner exception and the stack trace are returned only if they are not .»

    Источник

    • Remove From My Forums
    • Вопрос

    • I have a super-simple screen that has one entity an a grid (that used to work).  If I try to save, using the built-in button, I get:

      «An error occurred while updating the entries. See the inner exception for details.»

      It only happens in my published Azure cloud service (not on my local machine).  I have not been able to figure out how to get the Inner Exception.  I enabled the «Enable Created/Modified Properties» and I think that it might have something
      to do with that.  I unchecked it and the problem still exists.

      I have not been able to get tracing to work (I have a separate question going on that issue) so I am trying to figure out how to get the actual error.  Any ideas on how to get the actual error would be appreciated.

      Thanks,

      Mark

    Ответы

    • Otis:

      I think the error was thrown by the code in the catch block because the InnerException is null.

      Yesterday, I published to Azure using a database name which did not exist.  This caused LightSwitch to create a new database which should be perfect.  Then I used the Azure migration wizard to copy data from my old database to the new one. 
      I have done this before several times and it has always worked.

      I was really expecting this to fix the problem, but it did not. 

      I finally figured it out: I had some validation code on the Client table. When I commented this out, the error went away.  This code used to work, but for some reason it is causing the error.

      The really annoying thing is that I could never get a helpful error message and I spent a lot of time trying to figure this out.

      Thanks again for your help.

      Mark

      • Помечено в качестве ответа

        29 августа 2014 г. 13:32

    Форум КриптоПро
     » 
    КриптоПро УЦ
     » 
    КриптоПро УЦ 2.0
     » 
    Ошибка создания сертификата при использовании шаблона для ФНС


    Offline

    OOORosta

     


    #1
    Отправлено:
    :

    21 сентября 2017 г. 15:57:30(UTC)

    OOORosta

    Статус: Участник

    Группы: Участники

    Зарегистрирован: 21.09.2017(UTC)
    Сообщений: 16

    Сказал(а) «Спасибо»: 3 раз

    Собственно, не создается сертификат для ФНС.
    Для остальных шаблонов такой проблемы нет, сертификаты создаются без ошибок.
    Все необходимые поля заполнены верно. Запрос создается, но в ответ, вместо «Выполнено», получаю «Ошибка»
    В чем может быть проблема?


    Вверх


    Offline

    Захар Тихонов

     


    #2
    Оставлено
    :

    21 сентября 2017 г. 16:02:45(UTC)

    Захар Тихонов

    Статус: Сотрудник

    Группы: Участники

    Зарегистрирован: 17.08.2015(UTC)
    Сообщений: 3,074
    Мужчина
    Тонга
    Откуда: Калининград

    Сказал «Спасибо»: 36 раз
    Поблагодарили: 552 раз в 529 постах

    Ошибка при создании запроса на сертификат или запрос отклоняется?

    Техническую поддержку оказываем тут.
    Наша база знаний.


    Вверх


    Offline

    OOORosta

     


    #3
    Оставлено
    :

    21 сентября 2017 г. 16:08:02(UTC)

    OOORosta

    Статус: Участник

    Группы: Участники

    Зарегистрирован: 21.09.2017(UTC)
    Сообщений: 16

    Сказал(а) «Спасибо»: 3 раз

    Автор: tikhonov Перейти к цитате

    запрос отклоняется


    Вверх


    Offline

    Захар Тихонов

     


    #4
    Оставлено
    :

    21 сентября 2017 г. 16:26:26(UTC)

    Захар Тихонов

    Статус: Сотрудник

    Группы: Участники

    Зарегистрирован: 17.08.2015(UTC)
    Сообщений: 3,074
    Мужчина
    Тонга
    Откуда: Калининград

    Сказал «Спасибо»: 36 раз
    Поблагодарили: 552 раз в 529 постах

    Кто его отклоняет? Скорее всего ЦС. Посмотрите в журнале причину.

    Техническую поддержку оказываем тут.
    Наша база знаний.


    Вверх


    Offline

    OOORosta

     


    #5
    Оставлено
    :

    21 сентября 2017 г. 16:58:20(UTC)

    OOORosta

    Статус: Участник

    Группы: Участники

    Зарегистрирован: 21.09.2017(UTC)
    Сообщений: 16

    Сказал(а) «Спасибо»: 3 раз

    Автор: tikhonov Перейти к цитате

    Посмотрите в журнале причину.

    Цитата:

    Сообщение обработки запроса ID запроса Серийный номер Дата начала Дата окончания Выданное имя субъекта Статус запроса
    «request failed — An error occurred while updating the entries. See the inner exception for details. — Символьные или двоичные данные могут быть усечены.
    Выполнение данной инструкции было прервано.» 2175 Ошибка

    request failed — An error occurred while updating the entries. See the inner exception for details. — Символьные или двоичные данные могут быть усечены.
    Выполнение данной инструкции было прервано.

    -2146233087

    Bezymjannyjj.png (105kb) загружен 30 раз(а).

    Не нашел эту ошибку в Базе Знаний


    Вверх


    Offline

    Захар Тихонов

     


    #6
    Оставлено
    :

    21 сентября 2017 г. 17:17:01(UTC)

    Захар Тихонов

    Статус: Сотрудник

    Группы: Участники

    Зарегистрирован: 17.08.2015(UTC)
    Сообщений: 3,074
    Мужчина
    Тонга
    Откуда: Калининград

    Сказал «Спасибо»: 36 раз
    Поблагодарили: 552 раз в 529 постах

    В журнале приложения Windows что?
    Приложите запрос

    Техническую поддержку оказываем тут.
    Наша база знаний.


    Вверх


    Offline

    OOORosta

     


    #7
    Оставлено
    :

    21 сентября 2017 г. 17:33:17(UTC)

    OOORosta

    Статус: Участник

    Группы: Участники

    Зарегистрирован: 21.09.2017(UTC)
    Сообщений: 16

    Сказал(а) «Спасибо»: 3 раз

    Автор: tikhonov Перейти к цитате

    В журнале приложения Windows что?
    Приложите запрос

    journal_windows.zip (5kb) загружен 5 раз(а). zapros.zip (4kb) загружен 5 раз(а).


    Вверх


    Offline

    Захар Тихонов

     


    #8
    Оставлено
    :

    22 сентября 2017 г. 10:11:34(UTC)

    Захар Тихонов

    Статус: Сотрудник

    Группы: Участники

    Зарегистрирован: 17.08.2015(UTC)
    Сообщений: 3,074
    Мужчина
    Тонга
    Откуда: Калининград

    Сказал «Спасибо»: 36 раз
    Поблагодарили: 552 раз в 529 постах

    Уточните, пожалуйста, с помощью какого ПО создавался запрос на сертификат и каким образом он отправлялся на УЦ.

    Техническую поддержку оказываем тут.
    Наша база знаний.


    Вверх


    Offline

    OOORosta

     


    #9
    Оставлено
    :

    22 сентября 2017 г. 10:18:00(UTC)

    OOORosta

    Статус: Участник

    Группы: Участники

    Зарегистрирован: 21.09.2017(UTC)
    Сообщений: 16

    Сказал(а) «Спасибо»: 3 раз

    Автор: tikhonov Перейти к цитате

    Уточните, пожалуйста, с помощью какого ПО создавался запрос на сертификат и каким образом он отправлялся на УЦ.

    Запрос, как обычно, создавал через

    Цитата:

    Консоль управления ЦР

    через это же приложение и отправлялся

    УЦ 2.0 и Консоль управления ЦР на одном ПК

    Отредактировано пользователем 22 сентября 2017 г. 10:25:53(UTC)
     | Причина: Не указана


    Вверх


    Offline

    Захар Тихонов

     


    #10
    Оставлено
    :

    22 сентября 2017 г. 10:26:04(UTC)

    Захар Тихонов

    Статус: Сотрудник

    Группы: Участники

    Зарегистрирован: 17.08.2015(UTC)
    Сообщений: 3,074
    Мужчина
    Тонга
    Откуда: Калининград

    Сказал «Спасибо»: 36 раз
    Поблагодарили: 552 раз в 529 постах

    Пришлите компоненты пользователя, для которого создавался и обрабатывался запрос.
    Укажите сборку УЦ 2.0

    Техническую поддержку оказываем тут.
    Наша база знаний.


    Вверх

    Пользователи, просматривающие эту тему

    Guest (2)

    Форум КриптоПро
     » 
    КриптоПро УЦ
     » 
    КриптоПро УЦ 2.0
     » 
    Ошибка создания сертификата при использовании шаблона для ФНС

    Быстрый переход
     

    Вы не можете создавать новые темы в этом форуме.

    Вы не можете отвечать в этом форуме.

    Вы не можете удалять Ваши сообщения в этом форуме.

    Вы не можете редактировать Ваши сообщения в этом форуме.

    Вы не можете создавать опросы в этом форуме.

    Вы не можете голосовать в этом форуме.

    Исключение:

      HResult=0x80131501
      Message=An error occurred while updating the entries. See the inner exception for details.
      Source=EntityFramework
      StackTrace:
       at System.Data.Entity.Internal.InternalContext.SaveChanges()
       at System.Data.Entity.Internal.LazyInternalContext.SaveChanges()
       at System.Data.Entity.DbContext.SaveChanges()
       at SQDCDashboard.Services.Services.WindowsOrderImporterService.ImportOrder(DateTime date) in C:UsersMEsourcereposSQDC DashboardSQDCDashboardSQDCDashboard.ServicesServicesWindowsOrderImporterService.cs:line 145
       at SQDCDashboardOrderImporterTester.Program.Main(String[] args) in C:UsersMEsourcereposSQDC DashboardSQDCDashboardSQDCDashboardOrderImporterTesterProgram.cs:line 11
    
    Inner Exception 1:
    UpdateException: An error occurred while updating the entries. See the inner exception for details.
    
    Inner Exception 2:
    SqlException: Violation of PRIMARY KEY constraint 'PK_dbo.ProductionLines'. Cannot insert duplicate key in object 'dbo.ProductionLines'. The duplicate key value is (ceae2692-ed1d-4902-8e16-781aba577130).
    The statement has been terminated.
    

    Код:

        {
           Order ord = new Order
           {
              //ID and CreatedAt are being auto generated
              SerialNumber = serialNum,
              UnitNumber = unitNum,
              ProductionNumber = prodNum,
              MaterialNumber = materialNum,
              SalesNumber = salesNum,
              Location = Core.Enums.Location.Start,
              ProductionLineId = prodLineID, //Foreign Key
              ProdLine = prodLines.Where(x => x.Id == prodLineID).FirstOrDefault()
          };
          context.Orders.Add(ord);
          context.SaveChanges();
       } 
    

    Я пытаюсь обновить свою БД, чтобы добавить в нее новые заказы. Каждый заказ связан с ProductionLine и содержит его идентификатор, а затем ProductionLine. Я считаю, что это происходит, это то, что он пытается добавить в таблицу ProductionLine, но он должен только добавлять таблицу заказов. Я не уверен, как заставить его редактировать только таблицу заказов.

    Модели :

    public class Order : BaseEntity
        {
            public string ProductionNumber { get; set; }
            public string SalesNumber { get; set; }
            public string MaterialNumber { get; set; }
            public string SerialNumber { get; set; }
            public string UnitNumber { get; set; }
            public DateTime? CompletionDate { get; set; }
            public Location Location { get; set; }
            public string ProductionLineId { get; set; }
            public ProductionLine ProdLine { get; set; }
        }
    
    public class ProductionLine : BaseEntity
        {
            public string Name { get; set; }
            public double UPE { get; set; }
            public string ComputerName { get; set; }
            public bool ActiveLine { get; set; }
        }
    

    Решение:

    Я не установил неизменным свой список ProductionLine, который запрашивался в другом операторе использования. Установка его в неизменном состоянии позволяет EF знать, что ему не нужно обновлять его, что означает, что он не пытается дублировать идентификаторы.

    2 ответа

    Лучший ответ

    Entity Framework вставляет все записи с добавленным состоянием. Таким образом, ваша сущность тоже имеет такое же состояние, что и из-за того, что она вставлена.

    Вы можете установить его состояние, используя context.Entry (prodLines.Where (x => x.Id == prodLineID) .FirstOrDefault ()). State = EntityState.Unchanged;

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

    Вы можете увидеть больше информации об этом поведении в Состояния сущностей и SaveChanges


    1

    Mehrdad
    26 Мар 2020 в 16:09

    Вы уверены, что правильно настраиваете свои первичные ключи?

    При добавлении public int OrderId { get; set; } к заказу public string ProductionLineId { get; set; } на производственную линию

    Я могу вставить производственную линию и ссылаться на нее из нескольких заказов.

    Вы используете prodLines.Where(x => x.Id == prodLineID), который использует свойство Id, которое не отображается в вашем классе Model.

    Похоже, у вас есть свойство Id в вашем BaseEntity?


    0

    bergerb
    26 Мар 2020 в 16:25

    Понравилась статья? Поделить с друзьями:
  • An error occurred while updating the entries see the inner exception for details entity framework
  • An error occurred while updating the device software use emergency recovery function in the smart
  • An error occurred while updating dota 2 invalid app configuration
  • An error occurred while updating counter strike global offensive
  • An error occurred while updating app configuration unavailable