我有两个这样的课程,
public class Post
{
public int Id { get; set; }
public virtual Category Category { get; set; }
}
public class Category
{
public int Id { get; set; }
public virtual IList<Post> Posts { get; set; }
}
BlogDbContext.cs
OnModelCreating方法:
modelBuilder.Entity<Post>()
.HasRequired(x => x.Category)
.WithMany(x => x.Posts)
.HasForeignKey(x => x.Id);
在运行应用程序时,我收到以下错误。
Post_Category_Source ::多重性在角色&#39; Post_Category_Source&#39;中无效。在关系&#39; Post_Category&#39;。由于“从属角色”是指关键属性,因此“从属角色”的多重性的上限必须为“&#39;
任何帮助都将非常感激。
答案 0 :(得分:1)
如果仔细观察声明......
HasForeignKey(x => x.Id)
...您会发现x
不是Category
而是Post
。因此,它尝试将Post
的主键用作指向Category
的外键。这是一个有效的配置,但仅限于1-1个关联,因此有点神秘的异常消息。
这就是你之后的事情:
public class Post
{
public int Id { get; set; }
public int CategoryId { get; set; }
public virtual Category Category { get; set; }
}
public class Category
{
public int Id { get; set; }
public virtual ICollection<Post> Posts { get; set; }
}
modelBuilder.Entity<Post>()
.HasRequired(x => x.Category)
.WithMany(x => x.Posts)
.HasForeignKey(x => x.CategoryId);