Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

इकाई फ्रेमवर्क में SQL सर्वर अनुक्रम का अगला मान कैसे प्राप्त करें?

आप SQL सर्वर में एक साधारण संग्रहीत कार्यविधि बना सकते हैं जो इस तरह अगले अनुक्रम मान का चयन करती है:

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

और फिर आप उस संग्रहीत कार्यविधि को Entity Framework में अपने EDMX मॉडल में आयात कर सकते हैं, और उस संग्रहीत कार्यविधि को कॉल कर सकते हैं और इस तरह अनुक्रम मान प्राप्त कर सकते हैं:

// 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. समय के बीच डेटाबेस में एक साथ घटनाओं का पता लगाना

  2. SQL:केवल पहले अक्षर को बड़ा करें

  3. डेटाटाइम के लिए एसएसआईएस स्रोत प्रारूप निहित रूपांतरण

  4. बिना समुच्चय वाली पंक्तियों और स्तंभों को स्थानांतरित करें

  5. एसक्यूएल:बनाम <=और>=. के बीच