The type arguments for method 'System.Linq.Queryable.SelectMany System.Linq.IQueryable
编辑我的知识库类时,会弹出一个错误
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | var applicantList = (from a in context.Profiles join app in context.APPLICANTs on a.PROFILE_ID equals app.Profile_id into joined from j in joined.DefaultIfEmpty()//.OrderBy(v => v.APPLICANT_ID) select j //<-- this is APPLICANTs type ).Take(1000); applicantdata = applicantList .SelectMany(c => c.APPLICANTs) //this line added .AsQueryable().OrderBy(v => v.APPLICANT_ID).ToList(); if (applicantdata.Any()) { Cache.Set("applicants", applicantdata, 30); } } return applicantdata; |
我有个例外
1 | .SelectMany(c => c.APPLICANTs) //this line added |
说:
The type arguments for method 'System.Linq.Queryable.SelectMany(System.Linq.IQueryable, System.Linq.Expressions.Expression>>)' cannot be inferred from the usage. Try specifying the type arguments explicitly
SelectMany接受一个对象集合,其中每个对象都有一个集合属性。
您在第一个语句中选择了申请人集合,并在其上运行selectmany似乎没有意义。
签出这些链接以更好地了解selectmany。
http://msdn.microsoft.com/en-us/library/bb534336.aspxselect和selectmany之间的差异
selectmany用于"扁平化"列表。这里没有列表。您有一个匿名联接行的列表。
很难推断出你在查询什么,但是如果你想得到相关的行(申请人的行),你可以使用这个:
1 2 3 4 | var applicantList = (from a in context.Profiles join app in context.APPLICANTs on a.PROFILE_ID equals app.Profile_id select app).Take(1000) |