gpt4 book ai didi

c# - 自数据库创建以来,支持 'EmployeeDetailsContext' 上下文的模型已更改。

转载 作者:行者123 更新时间:2023-11-30 22:07:12 25 4
gpt4 key购买 nike

您好,我正在使用 Entity 框架和 Fluent API 在 DB 中创建表。当我创建我的第一个项目时它工作正常。表已在提到的数据库中创建。当尝试创建第二个项目时它显示错误

支持“EmployeeDetailsContext”上下文的模型自数据库创建以来已更改。考虑使用代码优先迁移来更新数据库 ( http://go.microsoft.com/fwlink/?LinkId=238269 )。

我想根据我的值(EmployeeDetails.cs)在数据库中创建表

EmployeeDetails.cs 是

public class EmployeeDetails
{
public int EmployeeId { get; set; }
//[StringLength(20)]
public string FirstName { get; set; }

//[StringLength(20)]
public string LastName { get; set; }
//[MaxLength(3)]

public int EmpAge { get; set; }
//[StringLength(100)]
public string Address { get; set; }

public int MobileNO { get; set; }

public int EmpRankId { get; set; }

public string JobTitle { get; set; }
}

EmployeeDetailsContext.cs

public class EmployeeDetailsContext:DbContext
{
public DbSet<EmployeeDetails> employeedet { get; set; }

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);

// The primary Key for the EmployeeId
modelBuilder.Entity<EmployeeDetails>().HasKey(t => t.EmployeeId);


// The Identity Key for the EmployeeId
modelBuilder.Entity<EmployeeDetails>().Property(c => c.EmployeeId).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

//max length for FirstName
modelBuilder.Entity<EmployeeDetails>()
.Property(d => d.FirstName).IsRequired()
.HasMaxLength(20);

//max length for LastName
modelBuilder.Entity<EmployeeDetails>()
.Property(d => d.LastName).IsRequired()
.HasMaxLength(20);

modelBuilder.Entity<EmployeeDetails>()
.Property(d => d.EmpAge).IsOptional();

modelBuilder.Entity<EmployeeDetails>()
.Property(d => d.Address).IsOptional();

//modelBuilder.Entity<Employee>()
// .Property(d => d.MobileNO).IsRequired();

modelBuilder.Entity<EmployeeDetails>()
.Property(d => d.EmpRankId).IsRequired();

modelBuilder.Entity<EmployeeDetails>()
.Property(d => d.JobTitle).IsOptional();

}
}

连接字符串是

 <connectionStrings>

<add name="EmployeeDetailsContext" connectionString="Data Source=inchser001\inchdb002; database=Test1;Persist Security Info=True;User ID=sa;Password=*******" providerName="System.Data.SqlClient" />

</connectionStrings>

当我创建我的第一个项目时它工作正常。表已在提到的数据库中创建。当尝试创建第二个项目时它显示错误

自数据库创建以来,支持“EmployeeDetailsContext”上下文的模型已更改。考虑使用 Code First 迁移来更新数据库 ( http://go.microsoft.com/fwlink/?LinkId=238269 )。

我想根据我的值(EmployeeDetails.cs)在数据库中创建表

我尝试了一些建议 ( https://stackoverflow.com/ ) 但它不起作用...

提供一些想法,这将帮助我走得更远

最佳答案

您只需按照错误消息的说明进行操作:使用 Code First Migrations。

  1. 通过在 VS 中打开包控制台窗口(工具->NuGet 包管理器->包管理器控制台)启用代码迁移
  2. 在那里运行命令“Enable-Migrations”
  3. 假设您不需要更改上下文中的任何内容,运行“Add-Migration X”,其中 X 是您要为该迁移指定的任何名称
  4. 然后只需运行“更新数据库”

Reference

关于c# - 自数据库创建以来,支持 'EmployeeDetailsContext' 上下文的模型已更改。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23155267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com