Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
27.10.2012, 12:34
|
|||
---|---|---|---|
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, 13:04
|
|||
---|---|---|---|
|
|||
Linq и @@Identity |
|||
#18+
после _db.Table_2s.InsertOnSubmit(t); t.id апдейтится должна, если в самой таблице счётчик стоит, а не триггер. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.10.2012, 13:36
|
|||
---|---|---|---|
Linq и @@Identity |
|||
#18+
Erik_Kartmann, Действительно стоит счётчик, то есть на уровне Linq никак, а нужно модифицировать таблицу? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.10.2012, 10:46
|
|||
---|---|---|---|
Linq и @@Identity |
|||
#18+
Erik_Kartmann, Для данного частного случая (инкрементный счётчик) решил проблему используя функцию MAX(...) DECLARE @temp int SELECT @temp = MAX(НомерТовара) FROM dbo.Table_2 RETURN @temp ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.10.2012, 11:55
|
|||
---|---|---|---|
Linq и @@Identity |
|||
#18+
ValGer, зачем лишний запрос? у вас есть новая сущность NewEntity. После Submit() у нее будет идентификатор, который назначит БД. Не совсем вопрос понятен ваш ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.11.2012, 07:57
|
|||
---|---|---|---|
Linq и @@Identity |
|||
#18+
ValGerErik_Kartmann, Для данного частного случая (инкрементный счётчик) решил проблему используя функцию MAX(...) DECLARE @temp int SELECT @temp = MAX(НомерТовара) FROM dbo.Table_2 RETURN @temp НИКОГДА так не делай!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=17&mobile=1&tid=1350195]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
2ms |
others: | 317ms |
total: | 460ms |
0 / 0 |