不确定如何将对象列表分配给 .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 个身份角色

如何将我自己的类注入到 ASP.NET MVC Core 的控制器中?

Python-Django 如何将对象列表分配给 M2M?

如何重写此代码,将字符串列表分配给字符串对象的集合?

如何在 ASP.NET Core Web API 中发布对象列表