2

我在使用代码优先方法在SQL Compact 4的Id列上设置标识种子时出现了一些问题。如何使用Entity Framework 4代码首先使用SQL Compact 4在ID列上设置Identity种子?

我已经试过这

context.Database.ExecuteSqlCommand("DBCC CHECKIDENT ('Members', RESEED, 100001"); 

但这不是在SQL精简工作。

MyDbContext:

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 



     SetupMemberEntity(modelBuilder); 


    } 

    private static void SetupMemberEntity(DbModelBuilder modelBuilder) 
    { 
     modelBuilder.Entity<Member>().Property(m => m.Id); 
      //.Property(m => m.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); 
     modelBuilder.Entity<Member>().Property(m => m.FirstName).IsRequired(); 
     modelBuilder.Entity<Member>().Property(m => m.LastName).IsRequired(); 
     modelBuilder.Entity<Member>().Property(m => m.PinCode).IsRequired(); 
     modelBuilder.Entity<Member>().Property(m => m.Email); 
     //modelBuilder.Entity<Member>().Property(m => m.DateCreated).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed); 
     //modelBuilder.Entity<Member>().Property(m => m.DateModified).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); 


    } 

我已经增加了一个属性成员Id的会员单位,并已尝试使用

context.Database.ExecuteSqlCommand("ALTER TABLE Members ADD MemberId INT IDENTITY(10000,1) PRIMARY KEY"); 

,但我得到错误信息表只能包含一个身份,但我还没有设置任何IDENTITY,所以Id列自动识别?

回答

2

我找到了答案here

context.Database 
    .ExecuteSqlCommand("ALTER TABLE Members ALTER COLUMN Id IDENTITY (10000,1)");