我有一个Code First MVC 4 Web应用程序 - Places之间存在多对多的关系:
public virtual int PlaceID { get; set; }
public virtual string Name { get; set; }
public virtual ICollection<User> Followers { get; set; }
和用户:
public virtual int UserID { get; set; }
public virtual string Name { get; set; }
public virtual ICollection<Place> Places { get; set; }
用户可以“关注”很多地方,地方可以有很多粉丝。
我想存储关于这种关系的其他信息 - 比如评级。因此,用户可以对他们关注的每个地点进行评级,比如说。
我如何实现这一目标 - 包括CRUD操作(Code First,Entity Framework 5)。
感谢。
答案 0 :(得分:1)
您需要将具有两个一对多关系的多对多关系替换为具有rating属性的中间类,该属性可以定义如下(您可能需要添加导航属性):
创建一个中间类
public class UserPlaceRelationship {
public virtual int PlaceID { get; set; }
public virtual int UserID { get; set; }
public virtual Place Place { get; set; }
public virtual User User { get; set; }
public virtual int Rating { get; set; }
}
更新您的地方课程:
public virtual int PlaceID { get; set; }
public virtual string Name { get; set; }
public virtual ICollection<UserPlaceReationship> UserRelationships { get; set; }
和您的用户类:
public virtual int UserID { get; set; }
public virtual string Name { get; set; }
public virtual ICollection<UserPlaceReationship> PlaceRelationships { get; set; }
查询将会有点棘手,因为您现在必须浏览中间类。
答案 1 :(得分:0)