【发布时间】:2013-05-22 01:34:09
【问题描述】:
我希望有人可以帮助我,因为当我编辑我的代码时。异常显示
这是我的控制器
public IEnumerable<APPLICANT> GetApplicant()
{
IEnumerable<APPLICANT> applicantdata = Cache.Get("applicants") as IEnumerable<APPLICANT>;
if (applicantdata == null)
{
var data = from app in context.APPLICANTs
join a in context.Profiles
on app.Profile_id equals a.PROFILE_ID into output
from j in output.DefaultIfEmpty()
select new {
Id = app.APPLICANT_ID,
LastName =
(j == null ? app.APPLICANT_LastName : j.Applicant_LASTNAME)
};
var applicant = data
.Where(v => !String.IsNullOrEmpty(v.LastName))
.Take(1000);
applicantdata = (from a in applicant
select new APPLICANT() {
APPLICANT_ID = a.Id,
APPLICANT_LastName = a.LastName
}).AsEnumerable();
if (applicantdata.Any())
{
Cache.Set("applicants", applicantdata, 30);
}
}
return applicantdata;
}
这是个例外:
NotSupportedException 未被用户代码处理。实体或复杂类型“ ”未在 LINQ to Entities 查询中构造。 LINQ ASP.NET
在这一行:
if (applicantdata.Any())
【问题讨论】:
-
在线
if (applicantdata.Any()),您是不是要检查操作是否返回记录? -
您不能投影到映射实体中。 stackoverflow.com/a/5325861/1914530
-
@GianAcuna 是的,先生,这是
if (applicantdata.Any())的功能 -
@bmused 但我该如何实现呢?
-
不清楚您要做什么。您似乎正在尝试获取
APPLICANT类型的 EF 实体,但由于某种原因,您加入并投影为匿名类型。然后,您尝试从匿名类型中的数据构造一个新的APPLICANT。我建议您查看 here 以获取有关如何编写 LINQ to Entities 查询的示例。
标签: c# asp.net asp.net-mvc linq entity-framework