0

我有 4 张桌子正在使用。

  1. 用户 :: ID(PK)、姓名、电子邮件。
  2. UserMessage :: ID(PK)、主题、正文、发送日期。
  3. UsersFromMessage :: ID(PK), FromUSerID(FK (PK => (Users))), MessageTableID(FK (PK => (UserMessage))) 和一些额外的colms。
  4. 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 的所有用户的名称。

4

1 回答 1

0

Your message class should look like the following:

public class Message
{
    ...
    public virtual User From { get; set; }
    public virtual IEnumerable<UsersToMessage> To { get; set; }
}

And then you can user the following to get your list of To users:

var msg = objEntities.Message.Where(m => m.From.ID == "U1").First();
var tousers = msg.To;
于 2012-08-25T18:46:18.157 回答