簡體   English   中英

同一個表中的Entity Framework中的一對多關系

[英]one to many relationship in Entity Framework on the same table

我有兩個表,其中一個用戶可以有幾個聯系人:

User(UserId, UserName)
Contact(UserId, ContactId)

假設我想通過Userid從User Table中的UserNames獲取所有ContactNames。

請注意,在當前數據上下文中無法看到Contact表,它已經變成了多對多的關系

我該如何查詢?

如果我需要插入或刪除該怎么辦?

我嘗試了“包含”方法,但它不起作用。 你有什么建議嗎?

非常感謝你。

var id = 1; // id to find
context.Users
     .Where(x=>x.UserId = id)
     .SelectMany(x=>x.Users)
     .Select(x=>x.UserName)
     .ToArray();

替代文字

從db生成后,您的模型具有2個子集合:Users和Users1。

  1. 其中之一對應於用戶,即當前用戶的聯系人。
  2. 另一個存儲用戶,當前用戶是聯系人。

您可以通過編輯器重命名它們,以將其含義表示為Contacts和ContactsFor。

替代文字

如果您仍然希望有2種類型而不是Type +(多對多參考),那么在編輯器中您可以刪除引用,創建新實體聯系人,設置所有映射,添加引用。 完成所有這些后 - 您將看到如下模型: 替代文字

為達到這個:

  1. 刪除多對多參考
  2. 克里特島新的實體Contact
  3. 添加屬性ContactId和UserId,將StoreGeneratedPattern設置為none
  4. 添加Contact映射
  5. 添加Contacts和ContactFor的關聯

但這並不容易。

暫無
暫無

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

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