[英].Net migration The entity type 'List<int>' requires a primary key to be defined
大家好,我对 migraiton 有疑问。我使用抽象 class,例如:
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Name { get; set; }
[ForeignKey("UserId")]
public int UserId { get; set; }
public DateTime? DateTime { get; set; }
public virtual User User { get; set; }
然后我有 2 个表,如下所示:
public class MovieFavoriteList:FavoriteListBase<int>
{
public List<int> MovieIds { get; set; }
}
public class TvSeriesFavoriteList:FavoriteListBase<int>
{
public List<int> TvIds { get; set; }
}
当我尝试迁移时出现此错误:
实体类型“List<int>”需要定义主键。 如果您打算使用无键实体类型,请在“OnModelCreating”中调用“HasNoKey”。 有关无键实体类型的更多信息,请参阅https://go.microsoft.com/fwlink/?linkid=2141943 。
你们知道我该如何解决吗?
我尝试如下:
[Keyless]
public class TvSeriesFavoriteList:FavoriteListBase<int>
{
public List<int> TvIds { get; set; }
}
然而后来我意识到这是无稽之谈:
[ForeignKey(nameof(MovieIds)]
public int MovieIds {get;set;}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<MovieFavoriteList>().HasKey(p=>p.MovieIds)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.