EF Core的Code First建模问题请教

2019-01-02 20:59发布

使用EF Core的CodeFirst建模数据库(我的数据库是MySql)时,在上下文类中做一些数据库的配置时,比如HasForeignKey之类的,正常在OnModelCreating配置时,代码如下:

modelBuilder.Entity<Post>(entity =>
{
entity.HasOne(d => d.Blog)
.WithMany(p => p.Post)
.HasForeignKey(d => d.BlogId);
});
View Code

在MySql数据库中却不能显示出外键,这就很迷。而且有时候我需要修改已经使用CodeFirst生成的列,比如:

modelBuilder.Entity<Post>(entity =>
{
entity.Property(p=>p.Content).HasColumnName("PostContents").HasColumnType("text").IsRequired();
});
View Code

然后,我将列名修改为Contents时:

modelBuilder.Entity<Post>(entity =>
{
entity.Property(p=>p.Content).HasColumnName("Contents").HasColumnType("text").IsRequired();
});
View Code

就如此配置,一开始是没有报错,但是MySql数据库中的列名没有改过来,不知道为什么,怎么刷新也没有用。实在不知道是我代码有问题还是别的问题。但是我重新配置了另外的一个示例项目就没有问题,而这个项目就有问题。

2条回答
爱死公子算了
2楼-- · 2019-01-02 21:50

迁移了吗?

查看更多
柔情千种
3楼-- · 2019-01-02 21:52

碰到这种情况,吓得吓死了,当然一般都是说明最基础的EF知识,都没掌握好。

很简单,还技术债务。创建一个最简单的项目,啥都没有,只有EF,然后把你说的这些情况都一一测试一遍,

最好再对照着微软的EF教程演练一遍,看看别人怎么做的,什么特殊情况怎么处理。

否则下次还是这样。

 

EF是可以拿起来就用,不代表不用学习各种不同情况的处理。

微软教程练习一遍:

ASP.NET Core MVC with Entity Framework Core - Tutorial 1 of 10

查看更多
登录 后发表回答