我正在使用一个试图找到匹配的唯一标识符(guid)的查询,例如
var myUsers = from u in table
where u.UniqueIdentifierId == MyClass.GetCurrentUserId()
select u;
这会为我的自定义函数抛出Method Not Supported错误。我记录它来做这个
string guid = MyClass.GetCurrentUserId().ToString();
where u.UniqueIdentifierId.ToString() == guid
这很有效。我想知道是否还有其他不需要创建临时变量的工作。感谢。
答案 0 :(得分:3)
您无法在查询中调用它,因为LINQ to SQL无法转换它。它试图在SQL调用中转换它。您必须做的是在LINQ查询之外调用此方法,如下所示:
var guid = MyClass.GetCurrentUserId();
var myUsers =
from u in table
where u.UniqueIdentifierId == guid
select u;
答案 1 :(得分:1)
你试过吗?
var myUsers = from u in table
where u.UniqueIdentifierId == MyClass.GetCurrentUserId().ToString()
select u;
这会强制LINQ to SQL使用字符串比较(这就是第二个工作的原因)