如何使用未绑定到具有实体框架代码优先的特定表的序列?

Posted

技术标签:

【中文标题】如何使用未绑定到具有实体框架代码优先的特定表的序列?【英文标题】:How to use a Sequence which is not bound to a specific table with Entity Framework code-first? 【发布时间】:2016-04-14 14:59:38 【问题描述】:

我想在我的数据库中有一个未绑定到特定列或表的序列。我找到了this:

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】:

自己找到了解决方案。只需在创建数据库时执行此操作:

context.Database.ExecuteSqlCommand("CREATE SEQUENCE TestSequence AS int START WITH 1 INCREMENT BY 1;");

【讨论】:

以上是关于如何使用未绑定到具有实体框架代码优先的特定表的序列?的主要内容,如果未能解决你的问题,请参考以下文章

如何从DbContext中清除未插入的POCO? - 实体框架代码优先

使用实体框架 6 代码优先方法时,在程序集中未找到上下文类型 [重复]

使用代码优先模型的 Kendo 网格绑定

实体框架代码优先 - 来自同一个表的两个外键

如何在 EF 代码优先中禁用链接表的级联删除?

无法使用实体框架代码优先创建具有凭据的数据库?