问题描述
我正在尝试在我的 .Net core console app
和我的本地 MysqL
中使用模型创建迁移,使用 entity framework core
Code first
方法一切都很好,但是在创建迁移并尝试使用之后update-database
我在 NugetPackage Console
模型:
分支
class Branche
{
[Key]
public string ID { get; set; }
[required]
public string Title { get; set; }
public ICollection<Student> Students { get; set; }
}
学生
class Student
{
[Key]
public string ID { get; set; }
public string Name { get; set; }
public string BrancheID { get; set; }
public Branche Branche { get; set; }
}
数据库上下文:
class SchoolContext:DbContext
{
public SchoolContext()
{
}
public SchoolContext(DbContextOptions<SchoolContext> dbContextOptions):base(dbContextOptions)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
// Map entities to tables
modelBuilder.Entity<Branche>().ToTable("Branche");
modelBuilder.Entity<Student>().ToTable("Student");
// Configure Primary Keys
modelBuilder.Entity<Branche>().HasKey(b => b.ID).HasName("PK_Branche");
modelBuilder.Entity<Student>().HasKey(s => s.ID).HasName("PK_Student");
//Configure Relations
modelBuilder.Entity<Student>().HasOne<Branche>().WithMany().HasPrincipalKey(b => b.ID)
.HasForeignKey(s => s.BrancheID).OnDelete(DeleteBehavior.NoAction)
.HasConstraintName("FK_Student_Branche");
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
IConfiguration configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetParent(AppContext.BaseDirectory).FullName)
.AddJsonFile("appsettings.json",false).Build();
optionsBuilder.UseMysqL(configuration.GetConnectionString("MysqL"),ServerVersion.AutoDetect(configuration.GetConnectionString("MysqL")));
}
public DbSet<Branche> Branches { get; set; }
public DbSet<Student> Students { get; set; }
}
错误:
Failed executing DbCommand (3ms) [Parameters=[],CommandType='Text',CommandTimeout='30']
CREATE TABLE `Branches` (
`ID` nvarchar(450) NOT NULL,`Title` nvarchar(max) NOT NULL,CONSTRAINT `PK_Branches` PRIMARY KEY (`ID`)
);
我使用 Pomelo.EntityFrameworkCore.MySql 5.0.0-alpha.2
请问有什么关于这个问题的帮助吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)