C# C语言中的实体框架一对多关系#

C# C语言中的实体框架一对多关系#,c#,entity-framework,listview,entity-relationship,C#,Entity Framework,Listview,Entity Relationship,我用了4张桌子 用户::ID(主键)、姓名、电子邮件 UserMessage::ID(主键),Subject,Body,Sentdate UsersFromMessage::ID(PK)、FromUSerID(FK(PK=>(Users))、MessageTableID(FK(PK=>(UserMessage)))和一些额外的colm UsersToMessage::ID(PK)、FromUSerID(FK(PK=>(Users))、MessageTableID(FK(PK=>(UserMess

我用了4张桌子

  • 用户::ID(主键)、姓名、电子邮件
  • UserMessage::ID(主键),Subject,Body,Sentdate
  • UsersFromMessage::ID(PK)、FromUSerID(FK(PK=>(Users))、MessageTableID(FK(PK=>(UserMessage)))和一些额外的colm
  • UsersToMessage::ID(PK)、FromUSerID(FK(PK=>(Users))、MessageTableID(FK(PK=>(UserMessage)))和一些额外的colm
  • 我在上面分享了我的数据库设计

    以没有smtp的邮件应用程序为例

    假设我的用户表有3个用户。 U1、U2和U3

    U1向U2和U3发送消息。 所以一个条目进入UserMessage表,两个条目进入UsersToMessage表,一个条目进入UsersFromMessage表

    现在我想显示从U1发送的所有消息,因此我使用以下查询

    暂时假定userid为1

    ForumEntities objEntities = new ForumEntities();
     List<UsersFromMessage> lstUsers = objEntities.UsersFromMessages.Where(x => x.FromUserID == 1).Tolist();
    
    forumenties对象=新forumenties();
    列出lstUsers=objenties.UsersFromMessages.Where(x=>x.FromUserID==1.Tolist();
    
    我获得了User,UsersFromMessage的数据,但我没有得到任何关于UserToMessage的信息,因为它与UsersFromMessage表没有直接关系


    我可以显示从U1发送的消息,但现在我想显示U1向其发送消息的所有用户的姓名,并绑定到Listview。

    您的消息类应如下所示:

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

    您的意思是说我应该为此创建一个自定义类,然后将该类绑定为数据源。我不能从实体框架模型本身获取值吗?或者您可以建议对我的实体框架模型进行任何更改吗。
    var msg = objEntities.Message.Where(m => m.From.ID == "U1").First();
    var tousers = msg.To;