在此上下文中仅支持基元类型

时间:2013-05-20 15:47:55

标签: c# linq linq-to-entities

我有以下代码摘录,我得到了上述错误。这是一个非常简单的查询,当然在SQL中完美运行。我错过了什么?

public IEnumerable<PAYSHIST> GetPayrollCriteria(string COID, IEnumerable<ASITE> sites)
{
    var recs = from p in _entities.PAYSHISTs
               join a in sites on p.SITE_CODE equals (a.SALES_ACC + a.SITE_NUMBER.ToString("000"))
               select p;
    return recs;
}

1 个答案:

答案 0 :(得分:1)

您无法使用数据库表加入内存集合。尝试使用Contains编写查询,如下所示:

var recs = from p in _entities.PAYSHISTs
           where sites.Select(a => a.SALES_ACC + a.SITE_NUMBER.ToString("000"))
                 .Contains(p.SITE_CODE)
           select p;