我有 4 张桌子正在使用。
- 用户 :: ID(PK)、姓名、电子邮件。
- UserMessage :: ID(PK)、主题、正文、发送日期。
- UsersFromMessage :: ID(PK), FromUSerID(FK (PK => (Users))), MessageTableID(FK (PK => (UserMessage))) 和一些额外的colms。
- UsersToMessage :: ID(PK), FromUSerID(FK (PK => (Users))), MessageTableID(FK (PK => (UserMessage))) 和一些额外的字段。
我在上面共享了我的数据库设计。
以没有 smtp 的邮件应用程序为例。
假设我的用户表有 3 个用户。U1、U2 和 U3。
U1 向 U2 和 U3 发送消息。因此,一个条目进入 UserMessage 表,2 个条目进入 UsersToMessage 表,一个条目进入 UsersFromMessage 表。
现在我想显示从 U1 发送的所有消息,所以我使用以下查询,
暂时假设userid为1。
ForumEntities objEntities = new ForumEntities();
List<UsersFromMessage> lstUsers = objEntities.UsersFromMessages.Where(x => x.FromUserID == 1).Tolist();
我获得了 User、UsersFromMessage 的数据,但我没有获得有关 UserToMessage 的任何信息,因为它与 UsersFromMessage 表没有直接关系。
我能够显示从 U1 发送的消息,但现在我想显示 U1 向其发送消息并绑定到 Listview 的所有用户的名称。