Вернуть uniqueidentifier в хранимых процедурах MSSQL, используя LINQ to SQL - PullRequest
1 голос
/ 29 февраля 2012

У меня есть хранимая процедура, и я хочу вернуть уникальный идентификатор. Поэтому я объявил уникальный идентификатор как OUTPUT. Но затем я «перетащил» это сделать мой LINQ to SQL DataClass, и он не будет распознавать мой возвращаемый тип. Он распознал только int или мои классы linq.

Как вернуть уникальный идентификатор, чтобы я мог использовать его с LINQ?

1 Ответ

0 голосов
/ 29 февраля 2012

Я нашел объяснение , как вернуть уникальный идентификатор .Он содержит несколько примеров возврата Guid.

Решение:

Для клиента .Net с использованием System.Data.SQLClient

Решение состоит в том, чтобы использовать предложение OUTPUT с оператором вставки, чтобы сгенерированный первичныйключ может быть извлечен с помощью метода ExecuteScalar () объекта SqlCommand.

For.Чистый клиент, использующий LINQ to SQL

Поскольку SQL Server генерирует первичный ключ в этом сценарии, LINQ to SQL будет работать правильно только в том случае, если атрибут Column со свойством IsDbGenerated = true применяется к свойству объекта, которое соответствуетосновной столбец первичного ключа.

Существует также вопрос об SO, касающийся этой проблемы:

Атрибут имени столбца сущности LINQ to SQL игнорируется с помощью первичного ключа guid

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...