这是我在代码中的模型,我在我的表的索引和标识的正常情况下使用Id作为密钥
public int Id { get; set; }
public int Code { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public virtual IEnumerable<Item> Items { get; set; }
public int MainGroupId { get; set; }
public virtual MainGroup mainGroup { get; set; }
我的问题是:如何从代码中的特定点开始自动增量, 当我向数据库添加项目时,在默认模式下 id 从1开始,但我想从10开始,我该怎么做?
答案 0 :(得分:1)
我认为您可以使用标识列,并自定义数据库初始化或迁移以设置标识列的种子。
执行此操作的T-SQL
命令是:
DBCC CHECKIDENT ('Offer', RESEED, 123);
请注意,下一个插入的值不是123,而是123 +增量(如果默认增量为1,则为124)。
您还可以使用带有DatabaseGeneratedOption.Computed
的列和序列作为字段的默认值(如果您使用的是最新的SQL Server版本)。创建序列时,可以指定初始值和增量:
CREATE SEQUENCE OfferNoSeq
START WITH 1 -- Initial Value
INCREMENT BY 1 -- Increment
将此序列作为OfferNo列的默认值附加,如下所示:
ALTER TABLE Offer ADD CONSTRAINT OfferNoSeq
DEFAULT (NEXT VALUE FOR OfferNoSeq) FOR OfferNo;
在Code First中没有直接的方法来实现它。因此,要使用这些选项中的任何一个,您需要