|
|
|
Linq и @@Identity
|
|||
|---|---|---|---|
|
#18+
Добрый день! Имеется ли в LINQ средство для того, что бы прочитать автоинкрементное ключевое поле после создания в таблице новой строки? В T-SQL это делается элементарно SELECT @temp=@@Identity А вот как это сделать в Linq, то есть не прибегая к построению хранимой процедуры - не пойму. Может это вообще невозможно - нет такого языкового средства? Фрагмент кода: Table_2 t = new Table_2 { НазваниеТовара = textBox2.Text }; _db.Table_2s.InsertOnSubmit(t); labelIdentity.Text = _db.НовоеЗначениеИнкремента().ToString(); _db.SubmitChanges(); Хранимая процедура: CREATE FUNCTION [dbo].[НовоеЗначениеИнкремента] ( ) RETURNS int AS BEGIN DECLARE @temp int SELECT @temp = @@IDENTITY RETURN @temp END Это не работает в приведённом коде на C# после _db.Table_2s.InsertOnSubmit(t) Видимо ...Submit(...) чистит всё. Что посоветуете? Модератор: Тема перенесена из форума "Microsoft SQL Server". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2012, 12:34 |
|
||
|
Linq и @@Identity
|
|||
|---|---|---|---|
|
#18+
после _db.Table_2s.InsertOnSubmit(t); t.id апдейтится должна, если в самой таблице счётчик стоит, а не триггер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2012, 13:04 |
|
||
|
Linq и @@Identity
|
|||
|---|---|---|---|
|
#18+
Erik_Kartmann, Действительно стоит счётчик, то есть на уровне Linq никак, а нужно модифицировать таблицу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2012, 13:36 |
|
||
|
Linq и @@Identity
|
|||
|---|---|---|---|
|
#18+
Erik_Kartmann, Для данного частного случая (инкрементный счётчик) решил проблему используя функцию MAX(...) DECLARE @temp int SELECT @temp = MAX(НомерТовара) FROM dbo.Table_2 RETURN @temp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2012, 10:46 |
|
||
|
Linq и @@Identity
|
|||
|---|---|---|---|
|
#18+
ValGer, зачем лишний запрос? у вас есть новая сущность NewEntity. После Submit() у нее будет идентификатор, который назначит БД. Не совсем вопрос понятен ваш ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2012, 11:55 |
|
||
|
Linq и @@Identity
|
|||
|---|---|---|---|
|
#18+
ValGerErik_Kartmann, Для данного частного случая (инкрементный счётчик) решил проблему используя функцию MAX(...) DECLARE @temp int SELECT @temp = MAX(НомерТовара) FROM dbo.Table_2 RETURN @temp НИКОГДА так не делай!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2012, 07:57 |
|
||
|
|

start [/forum/topic.php?fid=17&gotonew=1&tid=1350195]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
148ms |
get topic data: |
11ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 254ms |

| 0 / 0 |

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