【发布时间】:2012-03-01 22:22:37
【问题描述】:
我知道关于这个主题有几个问题。然而;我找不到与我的问题直接相关的问题。
我在数据库中有 3 个表,这 3 个表中的 PK 在外部参照表中形成了一个复合 PK。
我需要能够根据其中两个键选择不同的项目,以便在报告上显示。
public IEnumerable<AssemblyPrograms> GetProgramAssemblies()
{
var assembliesList = (from c in eModel.Assemblies.ToList()
join d in eModel.Programs_X_Assemblies_X_Builds
on c.AssemblyID equals d.AssemblyID
join p in eModel.Programs
on d.ProgramID equals p.ProgramID
join a in eModel.AssemblyTypes
on c.AssemblyTypeID equals a.AssemblyTypeID
select new AssemblyPrograms
{
AssemblyID = c.AssemblyID
,ProgramID = d.ProgramID
,AssemblyName = c.AssemblyName
,AssemblyPrefixName = c.AssemblyPrefixName
,ProgramName = p.ProgramName
,AssemblyTypeName = a.AssemblyTypeName
,AssemblyTypeID = a.AssemblyTypeID
});
return assembliesList;
}
这是我的查询以及我需要从表格中提取的内容
在我的外部参照表中,我有 AssemblyID、ProgramID 和 BuildID 作为我的复合 PK。
从 AssemblyID 到 ProgramID 可以存在多对多关系。 BuildID 是区分它们的关键。
我需要为我的报告提取 Distinct AssemblyID 到 ProgramID 关系,可以忽略 BuildID。
我在查询中尝试了 .Distinct() 以及其他一些无济于事的方法。
如果有人能给我任何帮助,我将不胜感激。
谢谢
【问题讨论】:
标签: sql linq linq-to-sql c#-4.0