簡體   English   中英

C#中的實體框架一對多關系

[英]Entity framework one to many relationship in C#

我有4個表正在使用。

  1. 用戶:: ID(PK),名稱,電子郵件。
  2. UserMessage :: ID(PK),主題,正文,發送日期。
  3. UsersFromMessage :: ID(PK),FromUSerID(FK(PK =>(Users))),MessageTableID(FK(PK =>(UserMessage)))和一些額外的列。
  4. UsersToMessage :: ID(PK),FromUSerID(FK(PK =>(Users))),MessageTableID(FK(PK =>(UserMessage)))和一些額外的列。

我上面共享了數據庫設計。

以不帶smtp的郵件應用程序為例。

假設我的用戶表有3個用戶。 U1,U2和U3。

U1向U2和U3發送消息。 因此,一項進入UserMessage表,兩項進入UsersToMessage表,一項進入UsersFromMessage表。

現在,我想顯示所有從U1發送的消息,因此我使用以下查詢,

暫時假設用戶標識為1。

ForumEntities objEntities = new ForumEntities();
 List<UsersFromMessage> lstUsers = objEntities.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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM