Перевод 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. Показов 23618. Ответов 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



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

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

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

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

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

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

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

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

  1. Перейдите в корневую папку Стима и найдите там «steamapps», в ней удалите папку «downloading». После перезагрузки пробуйте пройти в папку Steam и оттуда запустить его ярлык от имени администратора;Исправление ошибки при загрузке обновлений
    Удалите папку «downloading» в корне Steam
  2. Отключите роутер из розетки и выключите на время ПК — далее пробуйте запустить апдейт;
  3. Возможны конфликтные ситуации с вашим антивирусом, добавьте Steam в исключение;
  4. Может быть ситуация блокировки антивирусом непосредственно интернет-соединения, поэтому отключите его на время. Перезапустите DNS-клиент в Службах Windows.
  5. Причиной оказывается отсутствие свободного места на вашем жестком диске, освободите немного пространства;
  6. Откидывать перегрузки серверов тоже не стоит, попробуйте подключиться немного позже;
  7. Последним вариантом среди советов остается полная деинсталляция игр Dota 2 (Counter Strike).

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

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

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

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

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

  • Распечатать

Оцените статью:

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1

(0 голосов, среднее: 0 из 5)

Поделитесь с друзьями!

При добавлении данных в БД создаётся исключение, но прикол в том что если в бд нет никаких таблиц то никаких проблем нет, но в этом случаи другие таблицы не хотят создаваться и генерируют такое же исключение

Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while updating the entries. See the inner exception for details.
 ---> Microsoft.Data.SqlClient.SqlException (0x80131904): Invalid object name 'Logs'.
   at Microsoft.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at Microsoft.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
   at Microsoft.Data.SqlClient.SqlDataReader.get_MetaData()
   at Microsoft.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
   at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean isAsync, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
   at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry, String method)
   at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   at Microsoft.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
   at System.Data.Common.DbCommand.ExecuteReader()
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReader(RelationalCommandParameterObject parameterObject)
   at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.Execute(IRelationalConnection connection)
ClientConnectionId:9f11babd-3f89-4658-81a4-b6b9bf41ed60
Error Number:208,State:1,Class:16
   --- End of inner exception stack trace ---
   at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.Execute(IRelationalConnection connection)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.Execute(IEnumerable`1 commandBatches, IRelationalConnection connection)
   at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChanges(IList`1 entries)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChanges(IList`1 entriesToSave)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChanges(DbContext _, Boolean acceptAllChangesOnSuccess)
   at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](TState state, Func`3 operation, Func`3 verifySucceeded)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChanges(Boolean acceptAllChangesOnSuccess)
   at Microsoft.EntityFrameworkCore.DbContext.SaveChanges(Boolean acceptAllChangesOnSuccess)
   at Microsoft.EntityFrameworkCore.DbContext.SaveChanges()
   at Web.Utils.DBLogger.Log[TState](LogLevel logLevel, EventId eventId, TState state, Exception exception, Func`3 formatter) in C:UsersVladDesktopFutureBinanceAppWebUtilsDBLogger.cs:line 37

  • 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.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

Like this post? Please share to your friends:
  • Перевод an error occurred while processing this directive
  • Перевод an error occurred running the unity content on this page
  • Перевести undefined error please try to make operation later
  • Перевести select error
  • Перевести internet connection error