Pra*_*eep 7 linq-to-entities c#-4.0
我有一个名为CLASS的表和Fields
**{BATCH, DEGREE, DEPT, SEM, SECTION, GROUP }**
Run Code Online (Sandbox Code Playgroud)
我有以下记录
记录1:{2009,BE,CSE,3Sem,ASec,1Group}
Record2:{2009,BE,CSE,3Sem,ASec,2Group}
Record3:{2009,BE,ECE,4Sem,ASec,1Group}
Record4:{2009,BE,ECE,4Sem,ASec,2Group}
我需要选择不同的记录忽略GROUP并仅考虑以下内容
{批次,学位,部门,SEM,部分}
所以它应该返回以下2个不同的记录
Run Code Online (Sandbox Code Playgroud)Record1: **{ 2009 , B.E , CSE , 3Sem , ASec , 1Group }**DistinctRecord:1 ------------------------(OR)**
Run Code Online (Sandbox Code Playgroud)Record2: **{ 2009 , B.E , CSE , 3Sem , ASec , 2Group }**----- (AND)
Run Code Online (Sandbox Code Playgroud)Record3: **{ 2009 , B.E , ECE , 4Sem , ASec , 1Group }**DistinctRecord:2 ------------------------ (OR)
Run Code Online (Sandbox Code Playgroud)Record4: **{ 2009 , B.E , ECE , 4Sem , ASec , 2Group }**
现在我正在使用以下LINQ查询
public static object GetDistictClasses(IQueryable<Class> AllClasses)
{
return (from c in AllClasses
group c by new { c.Batch, c.Degree_ID, c.Specialization_ID, c.CurrentSemester, c.Section_ID } into grp
select new
{
grp.Key.Batch,
grp.Key.Degree_ID,
grp.Key.Specialization_ID,
grp.Key.CurrentSemester,
grp.Key.Section_ID
}).Distinct();
}
Run Code Online (Sandbox Code Playgroud)
但它返回一个Ananymous类型,但我需要实际的类类型
有人可以帮助我...谢谢你..
Regrads Pradeep
Ste*_*ven 26
您可以执行以下操作:
return
from c in AllClasses
group c by new
{
c.Batch,
c.Degree_ID,
c.Specialization_ID,
c.CurrentSemester,
c.Section_ID
} into grp
select grp.First();
Run Code Online (Sandbox Code Playgroud)
这Class将从给定组中获取每个第一个,因此返回Entity对象而不是匿名类型.
Sac*_*sad 18
让我们简单 - 在两个属性上完成不同:
这也将返回相同的对象类型.
var distinctgroupSubscriptions = groupSubscriptions.GroupBy(item => new { item.User.Id, item.Group.GroupId }).Select(group => group.First()).ToList();
Run Code Online (Sandbox Code Playgroud)