支持';雇员详细信息上下文';自数据库创建以来,上下文已更改
本文关键字:上下文 详细信息 支持 数据库 创建 | 更新日期: 2023-09-27 17:59:04
嗨,我正在使用带有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"上下文的模型已更改。考虑使用代码优先迁移来更新数据库(http://go.microsoft.com/fwlink/?LinkId=238269)。
我想在数据库中创建与我的值相关的表(EmployeeDetails.cs)
我试了一些糖(https://stackoverflow.com/)但它不起作用。。。
提供一些想法,这将帮助我进一步推动
您只需要按照错误消息所述的操作:使用代码优先迁移。
- 通过在VS中打开包控制台窗口(TOOLS->NuGet package Manager->package Manager控制台)启用代码迁移
- 在那里运行命令"启用迁移"
- 假设您不需要更改上下文中的任何内容,请运行"添加迁移X",其中X是您想要为该迁移命名的任何名称
- 然后只需运行"更新数据库"
参考