Tôi đang triển khai tính năng cho phép người dùng theo dõi nhau. Tôi có bảng cơ sở dữ liệu:Hai loại lớp giống nhau trong vấn đề lớp khung thực thể
User{UserId, FirstName, LastName etc.}
Followings{FollowerUserId, FollowingUserId, CreatedOnDate etc.}
Vì vậy, tôi đã thêm EF lớp:
public class Follow
{
[Key, Column(Order = 1)]
public Guid FollowerUserId { get; set; }
[Key, Column(Order = 2)]
public Guid FollowUserId { get; set; }
public DateTime CreatedOnDate { get; set; }
public virtual User Follower { get; set; }
public virtual User Following { get; set; }
}
Hai thuộc tính ảo cuối cùng vấn đề couse. Khi tôi gọi:
var model = con.Follows.Where(x => x.FollowerUserId == uid);
tôi nhận được sau ngoại lệ:
Invalid column name 'Following_UserId'.
Vấn đề này có lẽ gây ra vì hai đối tượng người dùng trong một lớp. Bất kỳ ý tưởng làm thế nào để workaround này?
CẬP NHẬT
public class User
{
public Guid UserId { get; set; }
...
public virtual ICollection<Follow> Following { get; set; }
public virtual ICollection<Follow> Followers { get; set; }
}
nó dường như không phù hợp với tôi để đưa cả userID và thuộc tính điều hướng, bạn chỉ nên đặt một trong số chúng, nếu không EF không thể tạo kết nối giữa chúng – Clueless
Bạn có thể giải thích tốt hơn Tôi không biết cách sửa lỗi này? – 1110