我试图模拟以下关系,目的是首先为EF代码设计类。
Program
表:
ProgramID - PK
ProgramName
ClusterCode
示例数据
ProgramID ProgramName ClusterCode
--------------------------------------
1 Spring A
2 Fall A
3 Winter B
4 Summer B
Cluster
表:
ID
ClusterCode
ClusterDetails
示例数据:
ID ClusterCode ClusterDetails
---------------------------------
1 A 10
2 A 20
3 A 30
4 B 20
5 B 40
我需要将Program
表加入Cluster
表,这样我就可以获得每个程序的集群详细信息列表。
SQL将是
Select
from Programs P
Join Cluster C On P.ClusterCode = C.ClusterCode
Where P.ProgramID = 'xxx'
请注意,对于Program
表格,ClusteCode
并非唯一。
对于Cluster
表,ClusterCode
和ClusterDetail
都不是唯一的。
我如何对此进行建模,以便我可以利用导航属性和代码优先?
答案 0 :(得分:0)
假设您已映射上面两个表并在它们之间建立关联并且您使用C#
,则可以使用简单的join
:
List<Sting> clustedDets=new ArrayList<String>();
var q =
from p in ClusterTable
join c in Program on p equals c.ClusterTable
select new { p.ClusterDetails };
foreach (var v in q)
{
clustedDets.Add(v.ClusterDetails);
}