[英]Seed primary key in Entity Framework code first to 0 in SQL Server Compact Edition
我有這個實體框架代碼第一類:
public class ClientEvent
{
[Key]
public int? EventCode { get; set; }
public string Description { get; set; }
}
使用SQL Server Compact Edition的此種子功能:
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 Compact Edition 。 我嘗試使用其建議的答案將初始化程序設置為0:
context.Database.ExecuteSqlCommand("DBCC CHECKIDENT ('ClientEvents', RESEED, 0)");
這個問題是:
System.Data.SqlServerCe.SqlCeException:解析查詢時出錯。 [令牌行號= 1,令牌行偏移= 1,令牌錯誤= DBCC]
是否首先使用Entity Framework代碼執行此操作的標准方法,與使用的數據庫類型無關?
您可以將此語句與SQL Server Compact一起使用:
ALTER TABLE [MyTable] ALTER COLUMN [Id] IDENTITY (0,1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.