使用Entity Framework SQL-Server-CE我创建了一个这样的表:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}}
每当我尝试使用Entity Framework插入其中时,class Era {
public long Id { get; set; }
[Index(IsUnique=true), Required]
public long Code { get; set; }
public string Name { get; set; }
public long StartDate { get; set; }
public long EndDate { get; set; }
}
对象的Id
字段将被忽略,并且会插入自动递增的Era
。
如何使Id
字段不使用自动递增的值,而是使用给定的值,最好使用注释。
答案 0 :(得分:6)
答案 1 :(得分:1)
我认为你需要:
[DatabaseGenerated(DatabaseGeneratedOption.None)]
默认情况下,数据库会生成一个值,因此您需要明确地将其关闭。
答案 2 :(得分:0)
所以这就是我要找的答案:
如果你想在实体框架中有一个非自动增量id的表;您需要先备份数据,删除表(这可以通过在DbSet
类中注释相关的DbContext
来完成),添加注释[DatabaseGenerated(DatabaseGeneratedOption.None)]
然后迁移和更新数据库。 / p>