Bạn có thể tạo một thủ tục được lưu trữ đơn giản trong SQL Server để chọn giá trị trình tự tiếp theo như sau:
CREATE PROCEDURE dbo.GetNextSequenceValue
AS
BEGIN
SELECT NEXT VALUE FOR dbo.TestSequence;
END
và sau đó, bạn có thể nhập quy trình đã lưu trữ đó vào mô hình EDMX của mình trong Entity Framework và gọi quy trình đã lưu trữ đó và tìm nạp giá trị trình tự như sau:
// 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);
}
Cập nhật: trên thực tế, bạn có thể bỏ qua thủ tục đã lưu trữ và chỉ chạy truy vấn SQL thô này từ ngữ cảnh EF của bạn:
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;
}
}