2012-03-09 77 views
0

我有一个类叫做人,有一个方法叫调用hasPermission(智力32)LINQ - 到实体无法识别方法布尔(INT32)

我试图调用一些LINQ和尝试了各种选择,但还没有设法找到解决方案,但如果任何人有任何想法,请你帮忙。

我现在有

IEnumerable<Person> co = this.Person(); 

//this.Person().Where(o => o.IsDeleted == false); 

// src.Where(o => o.IsDeleted == false).Select(v => new { Text = v.Name }); 
return this.Json(co,JsonRequestBehavior.AllowGet); 

你可以看到一对夫妇的其他事情,我的意见都试过了。

感谢您的帮助提前

杰玛

+3

所以,'Person'是返回IEnumerable的''的方法?根据它的名字,它可能不是。 'Person'方法的签名会很有帮助。 – 2012-03-09 12:30:00

+2

'hasPermission'在这里有什么作用?您正在寻找解决方案,但没有明确说明问题。 – 2012-03-09 12:39:08

+0

是的人是IEnumerable。 person类有一个hasPermission(int permissionID)的方法,用于设置人员的权限。但是我想要做的就是返回一个人名单。该问题是由LINQ to Entities方法 – gadgetgem 2012-03-09 12:45:56

回答

1

OK,因为这是LINQ到实体,则需要使用AsEnumerable方法:

// this.Person().Where(o => !o.IsDeleted) is translated by EF, the rest isn't 
this.Person().Where(o => !o.IsDeleted).AsEnumerable().Where(p => p.hasPermission(5)); 

AsEnumerable扩展方法包装你的LINQ to实体产生一个通用的IEnumerable。因此,后续的LINQ不会被EF转换为SQL,而只是被执行。

查看MSDN了解进一步的信息,AsEnumerable太:http://msdn.microsoft.com/en-us/library/bb335435.aspx

相关问题