EF 尝试创建泛型类型表 (TEntity)

问题描述

我做(ef-core,代码优先)“按类”配置,从通用基类开始,如下所示:

public class BaseEntityConfiguration<TEntity> : IEntityTypeConfiguration<TEntity>
    where TEntity : BaseEntity
{
    public virtual void Configure(EntityTypeBuilder<TEntity> builder)
    {
        var entityName = nameof(TEntity);
        builder.ToTable(entityName);
    }
}

add-migration 运行良好,但在 update-database 上却报错:

不能将表 'TEntity' 用于实体类型 'Couche',因为它正在 用于实体类型“Affaire”和潜在的其他实体类型,但 没有链接关系。为 'Couche' 添加外键 主键属性并指向另一个上的主键 实体类型映射到“TEntity”。

TEntity 是泛型类型占位符时,为什么要使用表 'TEntity'?

解决方法

nameof(TEntity) 是字符串“TEntity”。你可能应该使用

var entityName = typeof(TEntity).Name;

相反。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...