我实体和表结构都有了这个属性和字段
public class ArticleMap : IEntityTypeConfiguration<Article>
{
public void Configure(EntityTypeBuilder<Article> builder)
{
builder.ToTable("T_Article");
builder.HasKey("article_id");
builder.Property(s => s.Id).HasColumnName("article_id");
builder.Property(s => s.Author).HasColumnName("article_author");
builder.Property(s => s.Title).HasColumnName("article_title");
builder.Property(s => s.TextSection).HasColumnName("article_textsection");
builder.Property(s => s.Content).HasColumnName("article_content");
builder.Property(s => s.ArticleType).HasColumnName("article_articletype");
builder.Property(s => s.PraiseCount).HasColumnName("article_praisecount");
builder.Property(s => s.BrowserCount).HasColumnName("article_browsercount");
builder.Property(s => s.CommentIds).HasColumnName("article_comments");
builder.Property(s => s.IsDraft).HasColumnName("article_isdraft");
builder.Property(s => s.IsSendEmail).HasColumnName("article_sendemail");
builder.Property(s => s.CreateTime).HasColumnName("article_createtime");
builder.Property(s => s.UpdateTime).HasColumnName("article_updatetime");
}
}
builder.HasKey("article_id");
改成builder.HasKey("Id");
试试
不想放到实体类里面,觉得里面太乱了
@灬丶: builder.HasKey("article_id");改成builder.HasKey("Id");试试,我盲猜的
@灬丶: 你表建的时候为什么加那么老多下划线,用驼峰多好,都不用写这些个映射了
如果还不行,把builder.HasKey("article_id");
放了最后试试
@会长: 谢了,我换成 builder.HasKey(s=>s.Id)就可以了,原来是映射属性,从来没用过EF
@会长: 你么用EF一般是code first还是 db first?为啥我觉得两个都不好用,还是觉得数据库建表和实体分开舒服点,可能是我用其它的orm用多了吧
@灬丶: 我也很少用,我记得我正式在公司项目用过一次,忘了是不是code first,我个人觉得code first也没啥大好处。
哦,你觉得是你错的可能性大一点,还是EF错的可能性大一点呢?
我也不知道这是啥原因,google了好久
实体和表结构没对上吧,用的code first还是db first?
db
错了 code first,我都仔细对了好久
@灬丶: code first不用对啊,自己生成的,你看看是不是数据类型或者配置里面有了忽略之类的?
@猝不及防: 不是自动生成的,数据库和实体结构我没有关系,都是手动映射的
public class ArticleMap : IEntityTypeConfiguration<Article>
{
public void Configure(EntityTypeBuilder<Article> builder)
{
builder.ToTable("T_Article");
builder.HasKey("article_id");
builder.Property(s => s.Id).HasColumnName("article_id");
builder.Property(s => s.Author).HasColumnName("article_author");
builder.Property(s => s.Title).HasColumnName("article_title");
builder.Property(s => s.TextSection).HasColumnName("article_textsection");
builder.Property(s => s.Content).HasColumnName("article_content");
builder.Property(s => s.ArticleType).HasColumnName("article_articletype");
builder.Property(s => s.PraiseCount).HasColumnName("article_praisecount");
builder.Property(s => s.BrowserCount).HasColumnName("article_browsercount");
builder.Property(s => s.CommentIds).HasColumnName("article_comments");
builder.Property(s => s.IsDraft).HasColumnName("article_isdraft");
builder.Property(s => s.IsSendEmail).HasColumnName("article_sendemail");
builder.Property(s => s.CreateTime).HasColumnName("article_createtime");
builder.Property(s => s.UpdateTime).HasColumnName("article_updatetime");
}
}
@灬丶:
你试试先
builder.Property(s => s.Id).HasColumnName("article_id");
再
builder.HasKey("article_id");
呢
@猝不及防: 谢了,我换成 builder.HasKey(s=>s.Id)就可以了,原来是映射属性,从来没用过EF
@猝不及防: 你么用EF一般是code first还是 db first?为啥我觉得两个都不好用,还是觉得数据库建表和实体分开舒服点,可能是我用其它的orm用多了吧
@灬丶: code first,这样就不需要管数据库了