使用LINQ进行子选择
我想用LINQ做一个子选择 我所拥有的,但不正确使用LINQ进行子选择,linq,Linq,我想用LINQ做一个子选择 我所拥有的,但不正确 var diretores = from item in db.San_PropostaConversa join sc in db.San_Credenciada on (item.Credenciada_Id) equals sc.Credenciada_Id join sp in db.San_Proposta
var diretores = from item in db.San_PropostaConversa
join sc in db.San_Credenciada
on (item.Credenciada_Id) equals sc.Credenciada_Id
join sp in db.San_Proposta
on (item.Proposta_Id) equals sp.Proposta_Id
join si in db.San_Imovel
on (sp.Imovel_Id) equals si.Imovel_Id
join su in db.San_Usuario
on (item.Usuario_Id) equals su.Usuario_Id
where item.Proposta_Id == proposta
orderby item.DataHora descending
select new
{
sc.Apelido,
su.NomeCompleto,
su.DescricaoCargo1,
item.Comentario,
item.DataHora,
sp.Imovel_Id,
CredenciadaCaptadora_Id = si.Credenciada_Id,
item.Credenciada_Id,
(from item2 in db.San_Usuario
where item2.Cargo_Id == 9
&& item2.Excluido == 0
&& item2.Credenciada_Id == item.Credenciada_Id
select item2.Email)
};
在我的SELECT
语句中,我希望按照我的WHERE
子句中指定的一些条件恢复电子邮件列
错误
无效的匿名类型成员声明符。匿名类型成员必须
使用成员分配、简单名称或成员访问权限声明
这种错误主要发生在分配变量不可用时, 请试试这个 它会帮助你的
var diretores = from item in db.San_PropostaConversa
join sc in db.San_Credenciada
on (item.Credenciada_Id) equals sc.Credenciada_Id
join sp in db.San_Proposta
on (item.Proposta_Id) equals sp.Proposta_Id
join si in db.San_Imovel
on (sp.Imovel_Id) equals si.Imovel_Id
join su in db.San_Usuario
on (item.Usuario_Id) equals su.Usuario_Id
where item.Proposta_Id == proposta
orderby item.DataHora descending
select new
{
Apelido=sc.Apelido,
NomeCompleto=su.NomeCompleto,
DescricaoCargo1=su.DescricaoCargo1,
Comentario=item.Comentario,
DataHora=item.DataHora,
Imovel_Id=sp.Imovel_Id,
CredenciadaCaptadora_Id = si.Credenciada_Id,
Credenciada_Id= item.Credenciada_Id,
result= (from item2 in db.San_Usuario
where item2.Cargo_Id == 9
&& item2.Excluido == 0
&& item2.Credenciada_Id == item.Credenciada_Id
select item2.Email)
};
linq表达式中有两个问题:
Single()
/SingleOrDefault()
或First()
/FirstOrDefault()
var diretores = from item in db.San_PropostaConversa
join sc in db.San_Credenciada
on item.Credenciada_Id equals sc.Credenciada_Id
join sp in db.San_Proposta
on (item.Proposta_Id) equals sp.Proposta_Id
join si in db.San_Imovel
on sp.Imovel_Id equals si.Imovel_Id
join su in db.San_Usuario
on item.Usuario_Id equals su.Usuario_Id
where item.Proposta_Id == proposta
orderby item.DataHora descending
select new
{
Apelido = sc.Apelido,
NomeCompleto = su.NomeCompleto,
DescricaoCargo1 = su.DescricaoCargo1,
Comentario = item.Comentario,
DataHora = item.DataHora,
Imovel_Id = sp.Imovel_Id,
CredenciadaCaptadora_Id = si.Credenciada_Id,
Credenciada_Id = item.Credenciada_Id,
Email = (from item2 in db.San_Usuario
where item2.Cargo_Id == 9
&& item2.Excluido == 0
&& item2.Credenciada_Id == item.Credenciada_Id
select item2.Email).FirstOrDefault()
};
是什么阻止你这么做?您尝试了什么吗?错误消息告诉您:“必须使用成员分配、简单名称或成员访问权限声明匿名类型成员”。这就是您的确切原因和解决方案。@usr如果OP理解了错误消息,他就不会在这里发布问题。你的评论不是很有建设性,也很刻薄。@david.s在谷歌上搜索这条消息会找到一些解释。我认为这个问题没有帮助,因为它不会给网络添加新信息。我们有太多这样的问题:“我既没读过也没用谷歌搜索过这条消息”。这会导致(双方)浪费大量时间。