我有一段时间难以弄清楚如何从数据表中获取数据(MSSQL 2008)。问题是这个。你有3个表:
我假设JOB可以由许多工作人员完成,所以我需要“Worker2Job”表。所以我可以输入JobID:1由WorkerID1和WorkerId2等...
现在使用Entity框架我不知道如何获取第一个worker(也没有任何其他worker列表)的“WorkerName”属性。
任何想法?! Thx提前!
答案 0 :(得分:1)
RowId
中不需要任何特殊Worker2Job
。只需使用两列Worker2Job
和WorkerId
定义JobId
,并将这两列作为表的复合主键。将所有三个表添加到实体设计器后,它将自动查看多对多关系,并在模型中仅创建两个具有正确关系的实体。 Worker
实体将拥有Jobs
导航属性,Job
将拥有Workers
导航属性。您将能够编写如下查询:
var query = context.Jobs.Include("Worker").Where(j => j.JobId == someId);
此类查询将为所有相关工作人员加载作业,您将可以访问其名称。