[英]LINQ to Entities split string on result
I have a LINQ statement as follows: 我有一个LINQ语句如下:
var playedBanDataList =
from bannedPlayers in query
select new PlayerBanData
{
Admin = bannedPlayers.Admin,
BannedUntil = bannedPlayers.BannedUntil,
IsPermanentBan = bannedPlayers.IsPermanentBan,
PlayerName = bannedPlayers.PlayerName,
Reason = bannedPlayers.Reason,
IpAddresses = bannedPlayers.IpAddresses.Split(new [] {","}, StringSplitOptions.RemoveEmptyEntries).ToList()
};
return playedBanDataList.ToList();
This fails because split function fails on IpAddresses
as LINQ to Entities cannot translate this query to SQL. 由于LINQ to Entities无法将此查询转换为SQL,因此拆分函数在
IpAddresses
上失败,因此失败。
This makes sense, but then what's an equivalent way of accomplishing this elegantly? 这是有道理的,但那么优雅地实现这一点的方法是什么? The only way I've thought of is to manually run a loop on the retrieved string then splitting it, but I'd like to get it in one go.
我想到的唯一方法是在检索到的字符串上手动运行循环,然后拆分它,但我想一次性完成它。
You can use AsEnumerable
to make the select occur in memory instead of EF. 您可以使用
AsEnumerable
使选择在内存而不是EF中进行。
var playedBanDataList = query.AsEnumerable()
.Select(bannedPlayers => new PlayerBanData
{
Admin = bannedPlayers.Admin,
BannedUntil = bannedPlayers.BannedUntil,
IsPermanentBan = bannedPlayers.IsPermanentBan,
PlayerName = bannedPlayers.PlayerName,
Reason = bannedPlayers.Reason,
IpAddresses = bannedPlayers.IpAddresses.Split(
new [] {","},
StringSplitOptions.RemoveEmptyEntries).ToList()
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.