В WebMatrix существует метод GetLastInsertId . Однако, используя Reflector, я вижу, что он реализован так:
[return: Dynamic]
public object GetLastInsertId()
{
return this.QueryValue("SELECT @@Identity", new object[0]);
}
Что, насколько я вижу, является очень плохим способом сделать это, потому что @@Identity
возвращает последнюю вставку с учетом каждой таблицы и каждого сеанса. Мне нужно, чтобы это ограничивалось областью действия и сеансом, с которым я работаю, поэтому я ожидал, что это будет использовать SELECT SCOPE_IDENTITY()
, так как это также, по-видимому, то, что чаще всего используется согласно моим прочтениям.
Мои вопросы:
- Обертки WebMatrix делают что-то, что позволяет использовать это в моем случае?
- Если нет, есть ли простой способ получить вставленный идентификатор запроса на вставку, используя классы WebMatrix, или я должен прибегнуть к таким вещам, как SqlClient для этого?
Меня интересуют ответы для SQL Server (не компактные), если это имеет значение.