我正在关注当前的文档关于如何在 abp 框架上更新自动生成的用户实体并添加新列。
不同的是我要绑定到另一个表,所以新列应该是外键。我添加了表类,但是在映射中,我不能添加外键。
我尝试使用
HasOne
但它不让我使用它:
ObjectExtensionManager.Instance
.MapEfCoreProperty<IdentityUser, Guid>(
UserConsts.PropertyName,
(_, propertyBuilder) =>
{
propertyBuilder.HasOne<MyModel>().WithOne().HasForeignKey(x => x.MyPropertyId).IsRequired().OnDelete(DeleteBehavior.NoAction);
}
);
错误信息:
严重性代码描述项目文件行抑制状态 错误 CS1061“PropertyBuilder”不包含定义 'HasOne' 并且没有可访问的扩展方法 'HasOne' 接受第一个 可以找到“PropertyBuilder”类型的参数(您是否缺少 使用指令或程序集参考?)
你知道如何正确导入属性吗?
MapEFCoreProperty
方法:
public static ObjectExtensionManager MapEfCoreProperty<TEntity, TProperty>(
[NotNull] this ObjectExtensionManager objectExtensionManager,
[NotNull] string propertyName)
where TEntity : IHasExtraProperties, IEntity
{
return objectExtensionManager.MapEfCoreProperty(
typeof(TEntity),
typeof(TProperty),
propertyName
);
}
HasOne
是EntityTypeBuilder
类中定义的方法。因此不可能在 PropertyBuilder
实例上使用它。要映射到不同的表,您需要在 HasOne
实例上使用 EntityTypeBuilder
。