實體框架核心:與額外字段的多對多關係
自定義多對多關係關聯表時,
實體框架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>
MemberComment
Something
表代表聯接表,包括額外的屬性SomethingElse
和
。 >流利的API限制和解決方案
>
>無法使用Fluent API直接配置加入表。 解決方案是實現兩個一對多的關係。> >一對多的方法:查詢和操作
>
>這種方法允許類似的查詢和數據操作(添加,更新,刪除)作為傳統的多對多關係。 至關重要的是,它可以根據聯接表中的額外字段進行過濾。 級聯刪除將由於連接表中的不可用的外鍵。結論
> Fluent API不直接支持自定義的多對多聯接表,但使用兩個一對多關係提供了功能等值的功能,從而提供了包含和利用協會內其他字段的靈活性。
>以上是如何與實體框架核心中的額外字段實施多一關係?的詳細內容。更多資訊請關注PHP中文網其他相關文章!