【问题标题】:Nhibernate, Need help to build entity classNhibernate,需要帮助构建实体类
【发布时间】:2012-01-29 09:58:57
【问题描述】:

我有 3 张桌子,它们非常简单。用户、帖子、收藏夹。

            User Table:
            Id: int
            Name: string
            --------------------------------

            Post Table:
            Id: int
            Title: string
            UserId: int  (this is the FK)
            --------------------------------

            Favorite Table:
            UserId: int
            PostId: int
            --------------------------------

我为 User 和 Post 表创建了 2 个类文件。不知道如何在那里添加收藏表,收藏表允许用户为他们喜欢的帖子添加书签。

            public class User : Entity
            {
                public User() { this.Posts = new List<Post>;}
                public virtual string Name { get; set; }
                public virtual IList<Post> Posts {get; set;}
            }

            public class Post : Entity
            {
                public Post() {}
                public virtual string Title { get; set; }
                public virtual User User { get; set; }
            }

【问题讨论】:

  • 您要查找的可能是多对多关系。
  • 是的,这是多对可能的关系。但是,从 User 到 Post 是一对多的关系,一个 User 可以有多个 Post,一个 Post 必须属于一个 User。收藏夹是多对多的,也在 Post 和 User 之间。我卡在这里,不知道如何继续

标签: nhibernate nhibernate-mapping


【解决方案1】:

你有一个多对多的关系。收藏表是用户和帖子之间的关系表。

public class Favorite : Entity
{
    public virtual Post Post { get; set; }
    public virtual User User { get; set; }
}

【讨论】:

  • Rookian,谢谢你的帮助。我添加了您的代码,并稍微修改了 hte User 和 post 表,但看起来仍然不正确。
【解决方案2】:

Rookian,谢谢你的帮助。

在添加您的表格后,我添加了 公共虚拟 IList 收藏夹 { 获取;放;} 到用户和发布表。还是不太对劲。

            public class User : Entity
            {
                public User() { this.Posts = new List<Post>;}
                public virtual string Name { get; set; }
                public virtual IList<Post> Posts {get; set;}
                public virtual IList<Favorite> Favorites { get; set;}
            }

            public class Post : Entity
            {
                public Post() {}
                public virtual string Title { get; set; }
                public virtual User User { get; set; }
                public virtual IList<Favorite> Favorites { get; set;}
            }

            public class Favorite : Entity
            {
                public virtual Post Post { get; set; }
                public virtual User User { get; set; }
            }

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-18
相关资源
最近更新 更多