Linq查询区别于名称区分投掷异常

时间:2010-10-04 14:04:05

标签: c# linq-to-sql

我有一个简单的查询,我希望使用存储在“Attribute”属性中的值来获取属性。出于某种原因,我总是得到不支持此过载错误的Distinct操作。

var nounTypes = from c in query
                                join cna in ics.CatalogNounAttributes on c.CatalogId equals cna.CatalogId
                                join nta in ics.NounTypeAttributes on cna.NounTypeAttributeId equals nta.NounTypeAttributeId
                                join nt in ics.NounTypes on nta.NounTypeId equals nt.NounTypeId
                                select new { NounTypeName = nt.Name, Attributes = nt.NounTypeAttributes.Distinct() };

我还想得到按“属性”值分组的每个属性的Count,其中Attribute是NounTypeAttributes表上的属性。

1 个答案:

答案 0 :(得分:1)

我相信你应该简单地说nt.Distinct。

var nounTypes = from c in query
                                join cna in ics.CatalogNounAttributes on c.CatalogId equals cna.CatalogId
                                join nta in ics.NounTypeAttributes on cna.NounTypeAttributeId equals nta.NounTypeAttributeId
                                join nt in ics.NounTypes on nta.NounTypeId equals nt.NounTypeId
                                select new { NounTypeName = nt.Name, Attributes = nt.Distinct() };

您无需使用Distinct。

看看:

http://msdn.microsoft.com/en-us/vcsharp/aa336761.aspx#distinct2