如何设置1到100的自动增量列种子? 在sql server中可以使用
ADD Id INT NOT NULL IDENTITY(1000,1)
但在ormlite自动增量属性中似乎始终以1开头。
也尝试了
db.AlterTable<MSchool>("command") // DROP ID AND ADD AUTO INCREMENT COLUMN
如果Id与任何表格无关,它都有效。
我可以使用默认种子和增量来设置列自动增量吗?
[AutoIncrement(1000,1)]
public int Id {get;set;}
更新
已解决,但不是很好
public class School
{
[AutoIncrement]
public int Id {get;set;}
}
//then create table
db.CreateTable<School>();
//then update seed
db.ExecuteSql("DBCC CHECKIDENT ('School',reseed,1000)");
OR
[PostCreateTable("DBCC CHECKIDENT ('School',reseed,1000)")]
public class School : BaseModel
{
[AutoIncrement]
public int Id {get;set;}
}
有没有更简单的方法可以做到这一点?
答案 0 :(得分:0)
我个人认为这种行为不属于源代码,只是在带外修改数据库。
但如果我要在源代码中添加它,我会做类似的事情:
if (db.CreateTableIfNotExists<School>())
{
db.ExecuteSql("DBCC CHECKIDENT ('School',reseed,1000)");
}
因此,如果表不存在,它只会重置种子。
另一个选项是在运行时将它附加到模型,因此它与类定义分离:
typeof(School)
.AddAttributes(new PostCreateTableAttribute(
"DBCC CHECKIDENT ('School',reseed,1000)"));