我应该如何使用实体框架表达这组语句

本文关键字:语句 框架 何使用 实体 我应该 | 更新日期: 2023-09-27 18:32:21

我设置了一个复杂的应用程序,该应用程序使用与某些Microsoft SQL Server数据库相关的实体框架。虽然使用 Linq 表达一些常见查询似乎很简单,但我想知道我应该如何正确表达这组语句(它返回一个标量):

DECLARE @TZ SMALLINT;
SELECT @TZ = DATEPART(TZ, SYSDATETIMEOFFSET());
SELECT CAST(@TZ / 60 AS VARCHAR(5));

我应该如何使用实体框架表达这组语句

为什么不使用 c# 等效项:

DateTime n = DateTime.Now;
int tz = (n - n.ToUniversalTime()).Hours;

当然,假设您的服务器和程序位于同一时区。

这是我上面提到的完整代码:

Create Function dbo.TimeZone(@dummy varchar) returns varchar(5)
as
begin
    Declare @tz varchar(5)
    Select @tz = CAST(DATEPART(TZ, SYSDATETIMEOFFSET()) / 60 AS VARCHAR(5))
    return @tz
End
Go
Create Table x ( i int,
tz as (dbo.Timezone('')) 
)
Go
Insert into x(i) Values(5);
Select * from x;

或使用视图:

Create View y as Select dbo.TimeZone('') Tz
Go
Select * From y