當我有了這個查詢工作正常推斷,異常:類型參數可以當我嘗試創建一個LINQ爲同一目的,我沒有得到預期的結果不使用LINQ
select *
from Materia
where
Cursar_Cursada=0
and idmateria NOT IN (
select IdMateria
from UsuarioMateria
where IdUsuario=11
)
or Cursar_Cursada in (
select Materia.Codigo_Materia
from UsuarioMateria join Materia on UsuarioMateria.IdMateria = Materia.IdMateria
)
。
from t in obj.Materias
where
t.Cursar_Cursada == 0 &&
!(from t0 in obj.UsuarioMaterias
where
t0.IdUsuario == 11
select new
{
t0.IdMateria
}).Contains(new { t.IdMateria }) ||
(from t0 in obj.UsuarioMaterias
join t1 in obj.Materias on t0.IdMateria equals IdMateria
select new
{
t1.Codigo_Materia
}).Contains(new { t.Cursar_Cursada }) // <- error here
select new
{
t.IdMateria,
t.Nombre,
t.Cuatrimestre,
t.Contenido,
t.Cursar_Cursada,
t.Cursar_Aprobada,
t.Rendir_Aprobada,
t.Codigo_Materia
};
誤差上,說.Contains(new { t.Cursar_Cursada })
的行,它表示:
爲方法
'System.Linq.Enumerable.Contains<TSource>(System.Collections.Generic.IEnumerable<TSource>, TSource)'
類型參數不能從使用推斷。嘗試明確指定類型參數。
任何幫助,將不勝感激! – esteban
重新格式化以便更容易閱讀您的代碼 – Sascha
您可以試試.Contains(t.Cursar_Cursada)? – Sascha