[英]Entity framework one to many relationship in C#
我有4個表正在使用。
- 用戶:: ID(PK),名稱,電子郵件。
- UserMessage :: ID(PK),主題,正文,發送日期。
- UsersFromMessage :: ID(PK),FromUSerID(FK(PK =>(Users))),MessageTableID(FK(PK =>(UserMessage)))和一些額外的列。
- 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.