1
喜欢的用户文章中,我有博客帖子三个表:如何创建一个表中的实体框架
Post
表像PostID
,Title
岗位性质等User
表作者性质如UserID
等。PostLike
表包括两列,如PostID
和UserID
,它们是外键列。此表存储用户喜欢的帖子。事实上,当一个用户喜欢一个帖子时,一个记录被插入到这张表中。
我的代码是:
public partial class Post
{
public Post()
{
}
public int PostID { get; set; }
[Required, StringLength(150)]
public string Title { get; set; }
public int UserID { get; set; }
public virtual User User { get; set; }
}
public partial class User
{
public User()
{
Posts = new HashSet<Post>();
}
public int UserID { get; set; }
[Required,StringLength(50)]
public string Name{ get; set; }
public virtual ICollection<Post> Posts { get; set; }
}
public partial class PostLike
{
public PostLike()
{
Posts = new HashSet<Post>();
Users = new HashSet<User>();
}
[Key,Column(Order = 0),ForeignKey("Posts")]
public int PostID { get; set; }
[Key, Column(Order = 1),ForeignKey("Users")]
public int UserID { get; set; }
public virtual ICollection<Post> Posts { get; set; }
public virtual ICollection<User> Users { get; set; }
}
但是,当数据库被创建,PostLike
表没有任何外键和User
表有两个外键,如PostLike_PostID
和PostLike_UserID
。有必要指出Post
表没有那些外键。 可以帮我吗?
感谢PostLikes表这么多,它的工作。是否需要“Id”列?是否有可能将其删除? – msitworld
如果我们将'[Key,Column(Order = 1)]'和'[Key,Column(Order = 2)]'属性添加到'PostID'和'UserID',可以删除'Id'列。 – msitworld
@msitworld不知道它是否发生了变化,但是一般意见(主要由知名EF专家Julie Lerman表示)是应该避免加入除外键之外没有列的表。她建议始终包括ID列,因为EF可能会有其他问题。 –