繁体   English   中英

无法确定关系 - Entity Framework Core

[英]Unable to determine relationships - Entity Framework Core

我有具有 LinkedArticles 能力的表格文章,所以基本上当用户预览例如“Iphone 13”链接的文章可能是“Iphone Charger”或“AirPads”等。

这是我的实体:

public class Article : BaseEntity<long>, IDeleted
{
    public long? BrandId { get; set; }
    public Brand Brand { get; set; }
    public string Title { get; set; }
    public string ShortDescription { get; set; }
    public string Description { get; set; }
    public ICollection<LinkedArticle> LinkedArticles { get; set; }
    public bool Deleted { get; set; }
}

链接的文章如下所示:

public class LinkedArticle : BaseEntity<long>, IDeleted
{
    public long ArticleId { get; set; }
    public Article Article { get; set; }
    public long RelatedArticleId { get; set; }
    public Article RelatedArticle { get; set; }
    public bool Deleted { get; set; }
}

所以基本上我想在这个表 LinkedArticles 中保存相关文章,例如文章 id 5 可以有几个不同的文章与 id 5 相关。

但是当我尝试添加迁移时,出现以下错误:

无法确定类型为“ICollection”的导航“Article.LinkedArticles”表示的关系。 手动配置关系,或使用“[NotMapped]”属性或使用“OnModelCreating”中的“EntityTypeBuilder.Ignore”忽略此属性。

这里发生了什么? 我已经添加ICollection<LinkedArticle>Article.cs因为我想有从文章实体能力的查询链接的文章。

你可以有一个从文章到文章的参考。 看看这里:

FK 到同表代码优先实体框架

那么您不需要单独的 LinkedArticle 实体。

这应该是多对多的关系。 文章可以有很多链接文章,但是链接文章可以链接到很多文章。

看看这个文档: https : //docs.microsoft.com/en-us/ef/core/modeling/relationships? tabs = fluent-api%2Cfluent-api-simple-key%2Csimple-key#many- to -许多

例如(帖子可以有很多标签,但标签可以分配给很多帖子):

public class Post
{
    public int PostId { get; set; }
    public string Title { get; set; }
    public string Content { get; set; }

    public ICollection<Tag> Tags { get; set; }
}

public class Tag
{
    public string TagId { get; set; }

    public ICollection<Post> Posts { get; set; }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM