【发布时间】:2018-06-07 06:39:09
【问题描述】:
使用Linq to SQL,我想先将这两个字段组合起来:DateEnter(Date?类型)和TimeEnter(Integer?类型)。按降序对它们进行排序。将 DateEnter 和 TimeEnter 组合到一个 select 字段中。
我不断收到不支持翻译 sql 的方法。
Dim query = From a In dataContext.Orders
Join b In dataContext.OrderStatus On b.OrderName Equals a.Name
Where b.Status = "Finished"
Let UpdatedAt = b.DateEnter + TimeSpan.FromHours(b.TimeEnter)
Order By UpdatedAt Descending
Select New With {
Key .LastUpdatedAt = UpdatedAt,
Key .Name = a.Name,
Key .Owner = a.OrderOwner}
【问题讨论】:
-
请记住,LINQ 只是语法糖,它是特定的 LINQ 提供程序来完成繁重的工作。在使用 LINQ to SQL 的情况下,您的 VB 代码需要翻译成 T-SQL 才能对数据库执行,并且无法翻译
TimeSpan.FromHours。 Entity Framework 有自己的库,其中包含执行此类操作的方法。不确定 L2S 是否有类似的东西,但我认为你必须在数学上进行。 -
什么 SQL 引擎/数据库提供程序?
标签: sql-server vb.net linq-to-sql