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)