0

在将控制器移动到自己的类之前,我在控制器中有以下方法,并且它抱怨s => s.LocationAssignment说它不能将它从 lambda 更改为字符串,因为它是一个德尔门。

任何人都知道我必须改变什么?

public static IEnumerable<Service> getAllService()
{
    using (var db = new LocAppContext())
    {
        var service = db.Locations.Include(s => s.LocationAssignment);

        var serv = (from s in db.Services
                    where s.active == true
                    select s).ToList();
        return serv;
    }
}
4

3 回答 3

4

如果您使用的是 EF 版本 4,则该Include方法不接受 lambda 表达式,而是接受字符串。该错误对于您的特定情况非常有意义。这是IncludeEF 4 中方法的实际定义:

公共 DbQuery 包含(字符串路径)

所以你可以做的是:

db.Locations.Include("LocationAssignment");
于 2013-04-19T15:25:36.507 回答
1

只想补充一点,我收到了这个错误。我错过了下面的参考,花了我一段时间才弄清楚,因为我认为错误会提到缺少命名空间指令或其他东西,而不是委托不能转换为字符串。

using System.Data.Entity;
于 2017-05-31T18:22:34.273 回答
-2

service未使用。

service是类型IQueryable<Locations>。方法返回IEnumerable<Service>

public static IEnumerable<Service> getAllService()
{
    using (var db = new LocAppContext())
    {
        // var service = db.Locations.Include(s => s.LocationAssignment);

        var serv = (from s in db.Services
                    where s.active == true
                    select s).ToList();
        return serv;
    }
}
于 2013-04-19T15:22:55.310 回答