Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да получите следващата стойност на последователността на SQL Server в Entity Framework?

Можете да създадете проста съхранена процедура в SQL Server, която избира следващата стойност на последователността по следния начин:

CREATE PROCEDURE dbo.GetNextSequenceValue 
AS 
BEGIN
    SELECT NEXT VALUE FOR dbo.TestSequence;
END

и след това можете да импортирате тази съхранена процедура във вашия EDMX модел в Entity Framework и да извикате тази съхранена процедура и да извлечете стойността на последователността по следния начин:

// get your EF context
using (YourEfContext ctx = new YourEfContext())
{
    // call the stored procedure function import   
    var results = ctx.GetNextSequenceValue();

    // from the results, get the first/single value
    int? nextSequenceValue = results.Single();

    // display the value, or use it whichever way you need it
    Console.WriteLine("Next sequence value is: {0}", nextSequenceValue.Value);
}

Актуализация: всъщност можете да пропуснете съхранената процедура и просто да стартирате тази необработена SQL заявка от вашия EF контекст:

public partial class YourEfContext : DbContext 
{
    .... (other EF stuff) ......

    // get your EF context
    public int GetNextSequenceValue()
    {
        var rawQuery = Database.SqlQuery<int>("SELECT NEXT VALUE FOR dbo.TestSequence;");
        var task = rawQuery.SingleAsync();
        int nextVal = task.Result;

        return nextVal;
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Матрица на поддържаните версии на SQL Server

  2. Проверете състоянието на всички съобщения от базата данни в SQL Server (T-SQL)

  3. Грешка 109 на SQL Server:Има повече колони в израза INSERT, отколкото стойностите, посочени в клаузата VALUES

  4. Как ISNUMERIC() работи в SQL Server

  5. Как OBJECTPROPERTYEX() работи в SQL Server