nav*_*een 21 c# asp.net entity-framework
我有一个名为UserTenders与aspnet_Membership表有多对一关系的表.
我正在使用EntityFramework 4.0,当我尝试这样的东西时,它会出错.
var tenders = ctx.UserTenders
.Where(tender => tender.HasAdminApproved.Equals(true))
.ToList();
Run Code Online (Sandbox Code Playgroud)
错误是
System.NotSupportedException
无法创建类型为"System.Object"的常量值.
在此上下文中仅支持原始类型(例如Int32,String和Guid').
下面的代码片段有效.
var tenders = ctx.UserTenders.ToList();
Run Code Online (Sandbox Code Playgroud)
我的代码可能有什么问题?觉得我错过了一些非常微不足道的事情.
我想过滤所有那些行bit场HasAdminApproved为true
Nic*_*dke 33
尝试更换
.Where(tender => tender.HasAdminApproved.Equals(true))
Run Code Online (Sandbox Code Playgroud)
附:
.Where(tender => tender.HasAdminApproved == true)
Run Code Online (Sandbox Code Playgroud)
或者正如之前由@Ladislav Mrnka所建议的,如果你的领域是 bool?
.Where(tender => tender.HasAdminApproved)
Run Code Online (Sandbox Code Playgroud)
Cra*_*ntz 20
@Ladislav告诉你正确的答案(.Where(tender => tender.HasAdminApproved)),但你可能想知道为什么你得到这个消息.
你正试图打电话System.Boolean.Equals(Object obj).所以你是拳击常数true.正如消息所说,L2E不支持非原始类型的const System.Object.因此错误.
我遇到了由不同问题引起的相同异常:char与用作常量的字符串.我的选择看起来像这样:
from p in Person
select new Foo
{
FullName = p.FirstName + ' ' + p.LastName
}
Run Code Online (Sandbox Code Playgroud)
我在查询中的其他位置的布尔条件(即"where p.IsActive")工作正常.我不得不切换到使用字符串:
from p in Person
select new Foo
{
FullName = p.FirstName + " " + p.LastName
}
Run Code Online (Sandbox Code Playgroud)
这显然不是OP问题的答案,但我无法找到与char/string问题类似的问题所以我想发布它以获得其他人的好处.
| 归档时间: |
|
| 查看次数: |
23088 次 |
| 最近记录: |