繁体   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