簡體   English   中英

實體框架代碼中的種子主鍵在SQL Server Compact Edition中首先為0

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM