之前ef framework有sqlquery可以直接使用this._dbContext.SqlQuery<DateTime>("Select sysdate from dual");进行数据库时间的查询。但是ef core下没有针对database的sqlquery方法。只要有针对单dbset的fromsqlRaw,这种就不适用dual的内存表了。
目前针对ef core查询时间的办法如下:
using (var connection = this._messfContext.Database.GetDbConnection())
{
if (connection.State == System.Data.ConnectionState.Closed)
{
await connection.OpenAsync(cancellationToken);
}
using (var command = connection.CreateCommand())
{
command.CommandText = "SELECT SYSDATE FROM DUAL";
return (DateTime)await command.ExecuteScalarAsync(cancellationToken);
}
}