想创建一个评论表,弄不清我需要把什么外键放在那里。我想要一个用户的能力离开第二个用户的页面上的评论。这是我现在的模型。我需要补充什么?
评论

using System;
using System.Collections.Generic;

namespace sellwalker.Models
{
    public class Review : BaseEntity
    {
        public int ReviewId{get;set;}
        public string Content{get;set;}
        public DateTime CreatedAt{get;set;}
        public int UserId{get;set;}
        public User Reviewer {get;set;}


    }
}

用户
using System;
using System.Collections.Generic;

namespace sellwalker.Models
{
    public class User : BaseEntity
    {

        public int UserId{get;set;}
        public string FirstName{get;set;}
        public string LastName{get;set;}
        public string Email{get;set;}
        public string Password{get;set;}
        public string Status{get;set;}
        public string ProfilePic {get;set;}

        public List<Order> Orders {get;set;}
        public List<Product> products {get;set;}
        public List<Review> Reviews {get;set;}
        public User()
        {
            Orders = new List<Order>();
            products = new List<Product>();
            Reviews = new List<Review>();
        }
    }
}

有了当前表,我可以写评论,但我想把它链接到特殊用户。系统不允许我在那里再添加一个用户id,那么这里最好的解决方案是什么?

最佳答案

你可以这样做:
评审模式:

public class Review
{
    public int Id { get; set; }

    //...

    public int ReviewerId { get; set; }
    public virtual User Reviewer { get; set; }
    public int ReviewedUserId { get; set; }
    public virtual User ReviewedUser { get; set; }
}

用户型号:
public class User
{
    public int Id { get; set; }

    //...

    public virtual ICollection<Review> WrittenReviews { get; set; } = new HashSet<Review>();
    public virtual ICollection<Review> MyReviews { get; set; } = new HashSet<Review>();
}

然后必须使用fluent API指定连接,因为EF不知道wich导航属性属于wich。
流利的API代码:
modelBuilder.Entity<Review>()
    .HasRequired(x => x.ReviewedUser)
    .WithMany(x => x.MyReviews);

modelBuilder.Entity<Review>()
    .HasRequired(x => x.Reviewer)
    .WithMany(x => x.WrittenReviews);

关于c# - 通过撰写评论建立用户之间的关系,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48956345/

10-12 22:13
查看更多