簡體   English   中英

實體框架和 (1 to many)-(many to 1) (1 - * * - 1) 關系

[英]Entity Framework and (1 to many)-(many to 1) (1 - * * - 1) relations

一段時間以來,我在弄清楚如何從數據表中獲取數據時遇到了一些麻煩(MSSQL 2008)。 問題是這樣的。 您有 3 張桌子:

  • 表 1(作業):作業 ID、作業名稱
  • 表 2(工人):工人 ID、工人名稱
  • 表 3 (Worker2Job):RowID、WorkerID、JobID

我假設 JOB 可以由許多工人完成,所以我需要“Worker2Job”表。 所以我可以輸入 JobID:1 是由 WorkerID1 和 WorkerId2 等創建的......

現在使用實體框架,我不知道如何為第一個工作人員(也不是任何其他工作人員列表)獲取“WorkerName”屬性。

有任何想法嗎?! 提前謝謝!

您在Worker2Job中不需要任何特殊的RowId 只需用兩列定義您的Worker2JobWorkerIdJobId ,並使這兩列成為表的復合主鍵。 將所有三個表添加到實體設計器后,它將自動查看多對多關系,並在 model 中僅創建兩個具有正確關系的實體。 Worker實體將具有Jobs導航屬性,而Job將具有Workers導航屬性。 您將能夠編寫如下查詢:

var query = context.Jobs.Include("Worker").Where(j => j.JobId == someId);

這樣的查詢將加載所有相關工作人員的工作,您將可以訪問他們的姓名。

暫無
暫無

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

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