
    Новые сообщения [новые:0]
  
  Дайджест 
  
  Горячие темы
    Избранное [новые:0]
  
Форумы 
 
Пользователи 
Статистика 
Статистика нагрузки 
    Мод. лог 
  
  Поиск 
  | 
| 
 11.07.2019, 14:19 
 | 
|||
|---|---|---|---|
  
  | 
|||
Проблема со столбцом типа TIMESTAMP.  | 
|||
| 
 #18+ 
  
    
  У меня есть такая проблема: я из C# приложения (использующего Entity Framework 6) хочу вызвать SQL процедуру, в которой есть табличный параметр, использующий user-defined table type. То есть: существует user-defined table type: Код: sql 1. 2. 3. И он используется в моей процедуре так: Код: sql 1. Из C# приложения я его вызываю так (используя DbContext.Database.ExecuteSqlCommand): Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. И всё работает хорошо. Но недавно в этот user-defined type [Work_Work] добавили новое поле - "[Concurrency] TIMESTAMP NOT NULL". Моей процедуре оно не нужно. Оно нужно некоей другой процедуре, которая не пишет в таблицу базы (как моя), а читает оттуда. В таблице базы есть поле “[Concurrency] TIMESTAMP NULL”; вот той “другой процедуре” понадобилось его вычитать, для чего его и добавили в тип [Work_Work]. Но вот мой C# код после этого перестал вызывать процедуру. Если оставить его как есть, то вызов “dbContext.Database.ExecuteSqlCommand” ругается на то что в типе [Work_Work] больше полей, чем я передаю в параметре “worksSqlParam” (что верно). (“Trying to pass a table-valued parameter with 1 column(s) where the corresponding user-defined table type requires 2 column(s)”) Если же я в C# коде добавлю в таблицу worksTable ещё и поле Concurrency, то при вызове “dbContext.Database.ExecuteSqlCommand” выскакивает другая ошибка – “Cannot insert an explicit value into a timestamp column. Use INSERT with a column list to exclude the timestamp column, or insert a DEFAULT into the timestamp column”. Причём это происходит в .NET, до того как моя SQL процедура вызвана. Можно ли как-то эту проблему решить? Как-то заставить .NET всё же вызвать мою процедуру? Ведь из TSQL я это сделать могу – там я могу написать код, который не станет “ insert an explicit value into a timestamp column”. Как мне добиться такого же поведения от .NET-а при вызове моей процедуры? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
  | 

start [/forum/topic.php?fid=17&tablet=1&tid=1349109]:  | 
    0ms | 
get settings:  | 
    10ms | 
get forum list:  | 
    13ms | 
check forum access:  | 
    2ms | 
check topic access:  | 
    2ms | 
track hit:  | 
    65ms | 
get topic data:  | 
    12ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    43ms | 
get tp. blocked users:  | 
    2ms | 
| others: | 14ms | 
| total: | 165ms | 

    | 0 / 0 | 

    Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
    
    
    «На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
    
    
    ... ля, ля, ля ...