Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana cara mendapatkan nilai berikutnya dari urutan SQL Server di Entity Framework?

Anda dapat membuat prosedur tersimpan sederhana di SQL Server yang memilih nilai urutan berikutnya seperti ini:

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

dan kemudian Anda dapat mengimpor prosedur tersimpan itu ke model EDMX Anda di Entity Framework, dan memanggil prosedur tersimpan itu dan mengambil nilai urutan seperti ini:

// 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);
}

Pembaruan: sebenarnya, Anda dapat melewati prosedur tersimpan dan menjalankan kueri SQL mentah ini dari konteks EF Anda:

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. Mengapa pembacaan logis untuk fungsi agregat berjendela begitu tinggi?

  2. Masalah penyebaran laporan SSRS 2014

  3. Pesan Dengan menggunakan parameter untuk nama kolom

  4. Mengapa koneksi ODBC saya gagal saat menjalankan beban SSIS di Visual Studio tetapi tidak saat menjalankan paket yang sama menggunakan Execute Package Utility

  5. Menggunakan Peringatan dan Operator di SQL Server