教我自己.Net核心网络的东西。
我有一个模型,我已经成功地创建了我的DB。
现在,我正在为我的模型/类添加一个新的字段。我希望保留此表中的现有数据,因此不希望重新创建DB/Table。如何更新DB/Table>
我曾尝试在包管理控制台中使用“更新-数据库”,但是发现了一个错误,告诉我的表已经存在。我知道这是真的。但我是在更新而不是创造。
这是我的模型:
public class Subscription
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long SubscriptionId { get; set; }
public string SubscriptionRef { get; set; }
public string CompanyName { get; set; }
public string EmailAddress { get; set; }
public string Salt { get; set; }
public string Key { get; set; }
public bool Disabled { get; set; }
public DateTime DOE { get; set; }
}这是我的DBInitalizer
public class DbInitializer
{
public static void Initialize(WorkerContext context)
{
context.Database.EnsureCreated();
context.SaveChanges();
}
}这是我的startup.cs调用的
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddDbContext<WorkerContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddMvc();
}这是我的DB上下文:
public class WorkerContext : DbContext
{
public WorkerContext(DbContextOptions<WorkerContext> options) : base(options)
{
}
public DbSet<Models.Subscription> Subscriptions { get; set; }
}因此,现在我在订阅表/模型中添加了一个新字段:
public string Test { get; set; }我重新运行项目(我还输入了更新-数据库),没有创建新的字段.
如何使用代码1技术更新/编辑/修改/删除表和字段?
谢谢
发布于 2017-05-19 16:43:12
你必须使用:
dotnet ef migrations add "MigrationName" -c ContextName
dotnet ef database update -c ContextName并消除移徙:
dotnet ef migrations remove这将删除最新的迁移。
https://stackoverflow.com/questions/44074992
复制相似问题