编辑,这不是重复.建议的SO链接要我打电话,ToString()
但我正在运行.COUNT()
并试图做一个大于比较,所以呼叫ToString()
不是一个正确的答案.
我试图使用IF
快捷方式填充变量,但是当我运行它时,我得到了错误
LINQ to Entities无法识别方法'System.Guid Parse(System.String)'方法,并且此方法无法转换为存储表达式.
我正在运行的代码是
IsAdmin = (db.yaf_prov_RoleMembership
.Where(rm => rm.UserID == UserKey
&& rm.RoleID == Guid.Parse("adsfasd654asdf816asdf"))
.Count() > 0) ? true : false;
Run Code Online (Sandbox Code Playgroud)
如果我带走Guid.Parse
并进行直接比较,那么我得到了错误
Operator ==不能应用于System.Guid和String类型的操作数
为了将GUID与LINQ查询中的字符串进行比较,需要做些什么?
Ser*_*kiy 16
不知道为什么Dave删除了他的答案 - 你应该只是将字符串解析移出商店表达式.否则,Entity Framework会尝试将Guid.Parse
方法调用转换为SQL,并且无法执行此操作:
var adminRoleID = Guid.Parse("adsfasd654asdf816asdf");
Run Code Online (Sandbox Code Playgroud)
还用于Queryable.Any
简化查询:
IsAdmin = db.yaf_prov_RoleMembership
.Any(rm => rm.UserID == UserKey && rm.RoleID == adminRoleID);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10823 次 |
最近记录: |