C# 使用组合的ASP.NET Core 2.1中的不同用户类型
今天,我探索了如何基于继承创建不同的用户类型 在探索解决方案之后,我了解到另一种方法是使用组合而不是继承 问题是,现在当我运行初始迁移时,返回以下错误: 无法为“Type1.User”和“AppUser.Type1”之间的一对一关系确定子/从属方。要标识关系的子/依赖方,请配置外键属性。如果这些导航不应属于同一关系的一部分,请在不指定反向的情况下对其进行配置 问题:如何使用以下组合创建不同类型的用户 AppUser.csC# 使用组合的ASP.NET Core 2.1中的不同用户类型,c#,asp.net-core,asp.net-identity,entity-framework-migrations,C#,Asp.net Core,Asp.net Identity,Entity Framework Migrations,今天,我探索了如何基于继承创建不同的用户类型 在探索解决方案之后,我了解到另一种方法是使用组合而不是继承 问题是,现在当我运行初始迁移时,返回以下错误: 无法为“Type1.User”和“AppUser.Type1”之间的一对一关系确定子/从属方。要标识关系的子/依赖方,请配置外键属性。如果这些导航不应属于同一关系的一部分,请在不指定反向的情况下对其进行配置 问题:如何使用以下组合创建不同类型的用户 AppUser.cs using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Identity;
namespace MyApp.Models
{
public class AppUser : IdentityUser
{
public string FirstName { get; set; }
public string LastName { get; set; }
public Type1 Type1 { get; set; }
}
}
namespace MyApp.Models
{
public class Type1
{
public int Type1Id { get; set; }
public string Property1 { get; set; }
public AppUser AppUser { get; set; }
}
}
类型1.cs
using Microsoft.AspNetCore.Identity;
namespace MyApp.Models
{
public class AppUser : IdentityUser
{
public string FirstName { get; set; }
public string LastName { get; set; }
public Type1 Type1 { get; set; }
}
}
namespace MyApp.Models
{
public class Type1
{
public int Type1Id { get; set; }
public string Property1 { get; set; }
public AppUser AppUser { get; set; }
}
}
您可以参考设置一对一关系
将Type1.cs
更改为下面的代码,然后添加迁移
public class Type1
{
public int Type1Id { get; set; }
public string Property1 { get; set; }
public string AppUserId {get;set;}//As foreign Key
public AppUser AppUser { get; set; }
}
在Register.cshtml.cs
中创建具有特定类型的用户
var user = new AppUser {
UserName = Input.Email,
Email = Input.Email,
Type1= new Type1{ Property1="Admin"}
};
var result = await _userManager.CreateAsync(user, Input.Password);
您可能需要粘贴一些注释来说明哪个是FKID。您可以提供一个示例吗?[ForeignKey(“YourFkId”)]
使用System.ComponentModel.DataAnnotations.Schema代码>谢谢。但我不确定我应该将此应用于哪个属性。