首页 >后端开发 >C++ >如何与实体框架核心中的额外字段实施多一关系?

如何与实体框架核心中的额外字段实施多一关系?

Barbara Streisand
Barbara Streisand原创
2025-01-31 10:46:10823浏览

How to Implement Many-to-Many Relationships with Extra Fields in Entity Framework Core?

实体框架核心:与额外字段的多对多关系

自定义多对多关系关联表时,

实体框架Core的Fluent API会有局限性。 本文详细介绍了在加入表中添加额外字段的解决方法。

> 模型设计

考虑此示例模型:
<code class="language-csharp">public class Member
{
    public int MemberID { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public virtual ICollection<MemberComment> MemberComments { get; set; }
}

public class Comment
{
    public int CommentID { get; set; }
    public string Message { get; set; }
    public virtual ICollection<MemberComment> MemberComments { get; set; }
}

public class MemberComment
{
    [Key, Column(Order = 0)]
    public int MemberID { get; set; }
    [Key, Column(Order = 1)]
    public int CommentID { get; set; }
    public virtual Member Member { get; set; }
    public virtual Comment Comment { get; set; }
    public int Something { get; set; }
    public string SomethingElse { get; set; }
}</code>

MemberCommentSomething表代表联接表,包括额外的属性SomethingElse

>。

>流利的API限制和解决方案

>

>无法使用Fluent API直接配置加入表。 解决方案是实现两个一对多的关系。

> >一对多的方法:查询和操作

>

>这种方法允许类似的查询和数据操作(添加,更新,删除)作为传统的多对多关系。 至关重要的是,它可以根据联接表中的额外字段进行过滤。 级联删除将由于连接表中的不可用的外键。

结论

> Fluent API不直接支持自定义的多对多联接表,但使用两个一对多关系提供了功能等值的功能,从而提供了包含和利用协会内其他字段的灵活性。

>

以上是如何与实体框架核心中的额外字段实施多一关系?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn