问题描述
我做(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;
相反。