不确定如何将对象列表分配给 .net core 中的用户
Posted
技术标签:
【中文标题】不确定如何将对象列表分配给 .net core 中的用户【英文标题】:Not sure how to assign a list of objects to a user in .net core 【发布时间】:2021-05-23 13:34:14 【问题描述】:我用实体(我的意思是用户)创建了一个项目。我希望每个用户都有一个属于他们的汽车列表。所以在 ApplicationUser 我有这个:
public class ApplicationUser : IdentityUser
public List<Car> Cars get; set; = new List<Car>();
这是我的 AuthDbContext :
public class AuthDbContext : IdentityDbContext<ApplicationUser>
public AuthDbContext(DbContextOptions<AuthDbContext> options)
: base(options)
protected override void OnModelCreating(ModelBuilder builder)
base.OnModelCreating(builder);
最后是我的 Car.cs:
public class Car
[Key]
private Guid CarId get; set;
[Required]
[Column(TypeName = "varchar(255)")]
private string Make get; set;
[Required]
[Column(TypeName = "varchar(255)")]
private string Model get; set;
[Required]
[ForeignKey("Owner")]
private int OwnerId get; set;
[Required]
private ApplicationUser Owner get; set;
[Required]
private DateTime Built get; set;
private List<RepairService> RepairServices get; set;
public Car()
public Car(string make, string model, int ownerId, ApplicationUser owner, DateTime built, List<RepairService> repairServices)
CarId = Guid.NewGuid();
Make = make;
Model = model;
OwnerId = ownerId;
Owner = owner;
Built = built;
RepairServices = repairServices;
每次我尝试运行 Add-Migration 时都会收到此错误:
实体类型“汽车”需要定义主键。如果您打算使用无密钥实体类型,请在“OnModelCreating”中调用“HasNoKey”。
如果我是正确的,我需要每辆车都有一个 ID,这样我就可以将它们分配给各个用户。
我可能需要另一个 DbContext 吗?或者我可以将这些汽车存储在 AuthDbContext 中?
【问题讨论】:
我认为问题可能出在,因为您在 Car 模型中将所有属性标记为私有 【参考方案1】:最初的问题是我将每个字段都设置为私有,它应该是公开的
问题解决了
【讨论】:
以上是关于不确定如何将对象列表分配给 .net core 中的用户的主要内容,如果未能解决你的问题,请参考以下文章
角度将列表值传递给 JSON 主体 - .Net Core 和多对多关系
ASP.NET CORE MVC / 如何在同一个控制器上分配 2 个身份角色