1

编辑我的存储库类时弹出错误

 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;

我有一个例外

.SelectMany(c => c.APPLICANTs) //this line added

说:

无法从用法中推断方法“System.Linq.Queryable.SelectMany(System.Linq.IQueryable, System.Linq.Expressions.Expression>>)”的类型参数。尝试明确指定类型参数

4

2 回答 2

4

SelectMany 接受一个对象集合,每个对象内部都有一个集合属性。

您在第一条语句中选择了 APPLICANTs 集合并在其上运行 SelectMany 似乎没有意义。

查看这些链接以更好地了解 SelectMany。

http://msdn.microsoft.com/en-us/library/bb534336.aspx
Select 和 SelectMany 的区别

于 2013-05-20T07:08:15.653 回答
1

SelectMany用于“展平”列表列表。您在此处没有列表列表。您有一个匿名连接行的列表。

推断您要查询的内容有点困难,但如果您要获取相关行(APPLICANTs 行),您可以使用以下命令:

var applicantList = (from a in context.Profiles
                     join app in context.APPLICANTs
                     on a.PROFILE_ID equals app.Profile_id
                     select app).Take(1000)
于 2013-05-20T07:13:59.180 回答