在SQL Server精简版中,实体框架代码中的主键优先为0
本文关键字:框架 Server SQL 精简版 实体 代码 | 更新日期: 2023-09-27 18:14:18
我有这个实体框架代码的第一个类:
public class ClientEvent
{
[Key]
public int? EventCode { get; set; }
public string Description { get; set; }
}
SQL Server精简版:
protected override void Seed(ClientEventsContext context)
{
var clientEvent = new ClientEvent
{
EventCode = 0,
Description = "Test"
};
context.Events.Add(clientEvent);
base.Seed(context);
}
当我检查数据库表中的ClientEvent运行后,我看到这个条目:
EventCode | Description
---------------------------
1 | Test
注意EventCode是1吗?我希望它是0。我如何让这个主键从0开始?我已经尝试使用上面的代码,但即使使用0本身也会将第一个条目设置为1。
还有一个类似的问题,适用于SQL Server,但不适用于SQL Server精简版。我尝试使用它建议的答案将初始化项设置为0:
context.Database.ExecuteSqlCommand("DBCC CHECKIDENT ('ClientEvents', RESEED, 0)");
问题是:
System.Data.SqlServerCe。对象解析错误查询[令牌行号= 1,令牌行偏移量= 1,令牌错误= .DBCC]
是否有一个标准的方法来做这个与实体框架代码首先,无关的数据库的类型正在使用?
SQL Server Compact:
ALTER TABLE [MyTable] ALTER COLUMN [Id] IDENTITY (0,1)