日期:2014-05-20  浏览次数:20814 次

这句SQL被我改成LINQ,报了这个错。帮我分析下 谢谢
这是原来的SQL语句:

SELECT DISTINCT * FROM DEP WHERE dep_code in (SELECT DISTINCT dep_up FROM DEP WHERE dep_code in ( SELECT DISTINCT dep_up FROM DEP WHERE dep_code in (SELECT dep_code FROM PERSON_LIMITS WHERE UPPER(account)='" + UserAccount + "'))) order by dep_code

我改成LINQ方式:
var result = from d in ((Entities)this.DataContext).DEP
                         let p = ((Entities)this.DataContext).PERSON_LIMITS.Where(x => x.ACCOUNT.ToUpper() == useraccount).Select(n => n.DEP_CODE)
                         where p.Contains(d.DEP_CODE)
                         orderby d.DEP_CODE.Distinct()
                         select d;

然后报了这个错



LINQ哪错了?求帮忙分析下
------解决方案--------------------
引用:
PERSON_LIMITS是什么类型的?你可以试试看
((Entities)this.DataContext).DEP.AsEnumerable()


PERSON_LIMITS  是DBSET类型