gpt4 book ai didi

vb.net - 在 LINQ 查询选择语句中使用 .ToString

转载 作者:行者123 更新时间:2023-12-01 10:59:05 24 4
gpt4 key购买 nike

我有以下 LINQ 实体查询(使用 odp.net):

Dim 查询 = 来自 X.VIEW 中的 Elemento
其中 Elemento.code = "10"
选择新建 {Elemento.code, .Time = Elemento.Time.ToString("HH:mm")}
查询.ToList()

并且代码在 ToList() 上抛出异常方法:
LINQ to Entities does not recognize the method 'System.String ToString()'
我已经阅读了所有关于此的内容,但还没有找到一个简单的解决方法。

Lazyberezovsky 有正确的答案,我之前无法让它工作,因为我正在这样做:

Dim 查询 =(来自 X.VIEW 中的 Elemento
其中 Elemento.code = "10"
选择 New With {Elemento.code, Elemento.Time}).ToList
Dim query2 = from elemento in query
选择新建 {elemento.code, TIME = elemento.Time.ToString("HH:mm")}

昏暗的结果 = query2.ToList()

但这不起作用,显然您必须一步完成。

最佳答案

您可以将 DateTime 转换为内存中的字符串。只需制作 ToList在转换时间之前调用:

在 C# 中:

var query = from Elemento in X.VIEW
where Elemento.code == "10"
select new { Elemento.code, Elemento.Time };

var result = query.ToList() // now you are in-memory
.Select(x => new { x.code, Time = x.Time.ToString("HH:mm") });

在 VB.Net 中:
Dim query = From Elemento In X.VIEW
Where Elemento.code = "10"
Select New With {Elemento.code, Elemento.Time}

Dim result = query.ToList() _
.Select(Function(x) New With {x.code, .Time = x.Time.ToString("HH:mm")})

BTW 为什么选择 Elemento.code到结果中,如果您在 where 运算符中通过它进行过滤(它将始终等于“10”)。

关于vb.net - 在 LINQ 查询选择语句中使用 .ToString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12904484/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com