C# 向AbpUser添加导航属性
我试图在一个AbpUser(ASP.NET样板文件)和EF Core中名为AccountType的类之间创建一个一对多的关系。我有以下代码:C# 向AbpUser添加导航属性,c#,asp.net-core,entity-framework-core,aspnetboilerplate,C#,Asp.net Core,Entity Framework Core,Aspnetboilerplate,我试图在一个AbpUser(ASP.NET样板文件)和EF Core中名为AccountType的类之间创建一个一对多的关系。我有以下代码: public class User : AbpUser<User> { public virtual int? AccountTypeId { get; set; } [ForeignKey("AccountTypeId")] public virtual AccountType AccountTypeFk { get
public class User : AbpUser<User>
{
public virtual int? AccountTypeId { get; set; }
[ForeignKey("AccountTypeId")]
public virtual AccountType AccountTypeFk { get; set; }
}
public class AccountType : Entity
{
[InverseProperty("AccountType")]
public virtual ICollection<User> Users { get; set; }
}
公共类用户:AbpUser
{
公共虚拟int?AccountTypeId{get;set;}
[外键(“AccountTypeId”)]
公共虚拟AccountType AccountTypeFk{get;set;}
}
公共类AccountType:实体
{
[反向属性(“账户类型”)]
公共虚拟ICollection用户{get;set;}
}
但当我尝试构建迁移时,会收到以下错误消息:
类型“AccountType”的属性“Users”上的InversePropertyAttribute无效。属性“AccountType”不是相关类型“User”上的有效导航属性。确保该属性存在并且是有效的引用或集合导航属性>
谁能告诉我哪里出了问题?谢谢。您的用户。AccountTypeId需要删除虚拟机。这将在数据库中创建属性。这将允许创建外键,并允许sql连接等工作
您的AccountTypeFk可以是虚拟的,但是从名称中删除fk会更有意义,因为它不会是外键。它应该是一个子对象。它不应该是带有外键的属性的名称吗?aka
[InverseProperty(“AccountTypeFk”)]
是。错误消息清楚地指出了这一点。是的,这就是导致问题的原因,谢谢!