powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Linq и @@Identity
7 сообщений из 7, страница 1 из 1
Linq и @@Identity
    #38015503
ValGer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Имеется ли в 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".
...
Рейтинг: 0 / 0
Linq и @@Identity
    #38015522
Erik_Kartmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
после _db.Table_2s.InsertOnSubmit(t);
t.id апдейтится должна, если в самой таблице счётчик стоит, а не триггер.
...
Рейтинг: 0 / 0
Linq и @@Identity
    #38015535
ValGer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Erik_Kartmann,
Действительно стоит счётчик, то есть на уровне Linq никак, а нужно модифицировать таблицу?
...
Рейтинг: 0 / 0
Linq и @@Identity
    #38015976
ValGer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Erik_Kartmann,
Для данного частного случая (инкрементный счётчик) решил проблему используя функцию MAX(...)

DECLARE @temp int
SELECT @temp = MAX(НомерТовара) FROM dbo.Table_2
RETURN @temp
...
Рейтинг: 0 / 0
Linq и @@Identity
    #38016733
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValGer,

зачем лишний запрос? у вас есть новая сущность NewEntity. После Submit() у нее будет идентификатор, который назначит БД. Не совсем вопрос понятен ваш
...
Рейтинг: 0 / 0
Linq и @@Identity
    #38022712
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValGerErik_Kartmann,
Для данного частного случая (инкрементный счётчик) решил проблему используя функцию MAX(...)

DECLARE @temp int
SELECT @temp = MAX(НомерТовара) FROM dbo.Table_2
RETURN @temp

НИКОГДА так не делай!!!
...
Рейтинг: 0 / 0
Linq и @@Identity
    #38028902
super-code
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ValGer,

рано, рано за ОРМ... нельзя так.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Linq и @@Identity
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]