Хранимая процедура SQL Server и Linq-to-SQL - PullRequest
4 голосов
/ 21 октября 2010

Я сейчас работаю над проектом, в котором мы должны реализовать все коммуникации с базой данных с помощью хранимых процедур.Мы используем Linq-to-SQL, поэтому все объекты базы данных на месте.Мой вопрос заключается в том, как вы могли бы написать хранимую процедуру, которая возвращает сущность, если это возможно.

Например, мы проверяем пользователя, когда он входит в систему с именем пользователя и pass, и затем делаем проверку, но какЯ пишу, чтобы получить хранимую процедуру для возврата сущности Employee?

CREATE PROCEDURE GetLogin (
    @UserName NVARCHAR(50),
    @Password NVARCHAR(50))

1 Ответ

4 голосов
/ 21 октября 2010

Что делает и / или возвращает ваша GetLogin процедура ??

Когда вы добавляете хранимую процедуру в контекст данных Linq-to-SQL, вы можете определить «тип возврата» в окне свойств - если вы уверены, что ваша хранимая процедура возвращает все свойства которые составляют User, тогда вы можете установить тип возвращаемого значения этого хранимого процесса равным User, и тогда это должно сработать.

В этом случае ваш код будет выглядеть примерно так:

User found = ctx.GetLogin("YourUserName", "TOP$SECRET").SingleOrDefault();

Если пользователь был найден в базе данных, found будет содержать этого пользователя - в противном случае это будет NULL.

Обновление: если у вас есть такой User объект, конечно, вы можете использовать его, как и любой другой объект Linq-to-SQL!

Вы можете изменить свойства:

found.UserName = "New User Name";
ctx.SubmitChanges();

или вы можете удалить его:

ctx.Users.DeleteOnSubmit(found);
ctx.SubmitChanges();

Возвращаемый объект - это объект Linq-to-SQL, как и любой другой!

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