C# ASP.NET实体框架不支持异常

C# ASP.NET实体框架不支持异常,c#,asp.net,linq-to-entities,C#,Asp.net,Linq To Entities,我在应用程序的数据层中使用LINQ to实体,但在调用results.ToList时遇到了NotSupportedException。以下是导致异常的函数: public List<Organization> GetByLocation(Location l) { using (Entities entities = new Entities()) { var results = from o in entiti

我在应用程序的数据层中使用LINQ to实体,但在调用results.ToList时遇到了NotSupportedException。以下是导致异常的函数:

    public List<Organization> GetByLocation(Location l)
    {
        using (Entities entities = new Entities())
        {
            var results = from o in entities.OrganizationSet
                          where o.Location == l
                          select o;

            return results.ToList<Organization>();
        }
    }
关键是将给定位置的所有组织的列表返回给服务层,服务层将其返回给MVC控制器,MVC控制器将其转换为JSON,然后将其返回给客户端。服务层希望返回一个列表

这可能很简单。。。有什么帮助吗

public List<Organization> GetByLocation(Location l)
{
    using (Entities entities = new Entities())
    {
        var results = from o in entities.OrganizationSet
                      where o.Location.Id == l.Id
                      select o;

        return results.ToList<Organization>();
    }
}

由于此查询将转换为SQL,因此无法对l进行引用比较。相反,通过PK进行比较。

Sheesh,我在Java的Hibernate查询中执行了数百万次,在c语言中工作时完全忘记了这一点。如果有人问我,我暂时避免使用NHibernate,因为它在保持这款应用的轻量级的同时,仍然设计得很好。顺便问一下,有什么好的理由不自动将参考比较变成主键比较吗?这将缩短查询时间,尤其是在复合键的情况下。丹尼尔,这似乎是可能的,但我还没有考虑到后果。对于初学者来说,==可以重载。