LINQ Guid toString()

Sev*_*vki 13 c# linq linq-to-entities

嗨,这似乎应该工作,

from something in collectionofsomestuff       
select new SelectListItem(){Text = something.Name, Value = something.SomeGuid.ToString(), Selected = false};
Run Code Online (Sandbox Code Playgroud)

当我尝试这样做时它不起作用给我错误

LINQ to Entities无法识别方法'System.String ToString()'方法,并且此方法无法转换为存储表达式.

有解决方法吗?

小智 6

并非所有CLR方法都可以与Linq-to-Entities一起使用.ToString()似乎就是其中之一.

看一下CLR方法到Canonical Function Mapping.

也许尝试在Linq之外明确地将GUID设置为字符串变量.

string myGuid = SomeGuid.ToString();

from something in collectionofsomestuff       
select new SelectListItem(){Text = Name, Value = myGuid, Selected = false};
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以在db中获取记录,然后使用ToList()或ToArray()将它们转换为列表或数组.然后使用该对象.例如(它是LINQ to Entities):

var list = collectionofsomestuff.select(c => c).ToList();
from something in list
select new SelectListItem(){Text = something.Name, Value = something.SomeGuid.ToString(), Selected = false}; 
Run Code Online (Sandbox Code Playgroud)