【发布时间】:2014-06-19 10:22:13
【问题描述】:
我对 Entity 完全陌生(我已经接管了另一个人的项目),因此我错过了一些关键事实,但我会尝试解释我的问题:
我的申请人有一个表格,其中包含他们的名字等信息。我也有一个包含 ASP.NET 用户的表格。这些表由 user_id 链接。
我正在尝试将登录名设置为下拉列表中的可选列表项,但为此我需要加入这两个表。我写了以下代码:
var container = new ModelContainer();
var manager = new ApplicantDBManager();
IEnumerable<Business.Entities.EF.Applicant> applicantQuery;
if (txtSearch.Text.Equals(string.Empty))
{
applicantQuery = container.Applicants;
}
else
{
var ids = manager.ApplicantSearchForIDs(ddlSearch.SelectedValue, txtSearch.Text, chkIncludeInactive.Checked);
applicantQuery = (from a in container.Applicants
join u in container.Users on a.user_id equals u.user_id
where ids.Contains(a.user_id)
select new
{
user_id = a.user_id,
first_name = a.first_name,
last_name = a.last_name,
login_name = u.login_name,
date_of_birth = a.date_of_birth,
kot_cpr = a.kot_cpr,
address = a.address,
email = a.email,
telephone_number = a.telephone_number,
citizenship = a.citizenship
});
}
我收到一个错误,例如“无法将类型 System.Linq.Iqueryable 隐式转换为 System.Collections.Generic.IEnumerable”,而且我如何尝试修复它似乎并不重要(我尝试添加 .ToList() .AsQueryable()、First() 等没有运气)。我认为这与申请人实体有关?
【问题讨论】:
-
我 99.9% 确定这不是您收到的 exact 错误消息 - 我怀疑确切的错误消息将包含类型参数,表明 @ 987654322@ 有一个匿名类型参数,而它试图转换为
IEnumerable<Business.Entities.EF.Applicant>。这些事情很重要:始终将错误消息直接复制并粘贴到问题中,以避免丢失重要信息。