TPC 在代码优先迁移中不起作用

Posted

技术标签:

【中文标题】TPC 在代码优先迁移中不起作用【英文标题】:TPC doesnt work in CodeFirst-Migration 【发布时间】:2016-01-19 08:52:06 【问题描述】:

我有以下课程:

 public abstract class BaseAttachment

    public Guid BaseAttachmentId  get; set; 
    public string FileName  get; set; 
    public string FileExtension  get; set; 
    public string FileSize  get; set; 
    public Folder Folder  get; set; 
    public Guid? FolderId  get; set; 
    public byte[] RowVersion  get; set; 

我有下面的表和继承BaseAttachment

public class ProductGallery : BaseAttachment

    public ProductHeader ProductHeader  get; set; 
    public Guid? ProductHeaderId  get; set; 

还有这个:

 public class Attachment:BaseAttachment



当运行项目和创建数据库时,我有下表:

BaseAttachment,ProductCategory

而不是一张桌子 (BaseAttachment) 。 为什么?

【问题讨论】:

【参考方案1】:

我是 ProductCategoryConfig 的一个配置类,如下所示:

 public class ProductGalleryConfig:EntityTypeConfiguration<ProductGallery>

   public ProductGalleryConfig()
   
       ToTable("ProductGallery");
       Property(row => row.Code).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
       Property(row => row.RowVersion).IsRowVersion();
       HasRequired(row => row.ProductHeader).WithMany(row => row.Galleries).HasForeignKey(row => row.ProductHeaderId).WillCascadeOnDelete(false);
   

并在 Line 下方评论及其修复。

//    ToTable("ProductGallery");

【讨论】:

以上是关于TPC 在代码优先迁移中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

实体框架代码优先 - 初始代码迁移不起作用

启用迁移在 ASP MVC 5 中不起作用

Django 迁移在 GitHub Actions 中不起作用

Flyway Java 迁移在命令行工具中不起作用

窗口挂钩在 Windows 7 中不起作用,但在 Windows xp 中不起作用

实体框架脚手架和迁移不起作用