c# - 实体框架从 Oracle 的 DUAL 获取 sysdate
问题描述
从 Oracle 的“DUAL”获取 SYSDATE 的最佳方法是什么?
我尝试使用 ExecuteSqlRawAsync 但我也需要返回值。
public async Task<DateTime> GetTime()
{
// This does not return value and does not work
await _dbContext.Database.ExecuteSqlRawAsync("Select sysdate from dual;");
}
另一种方法是创建一个类似的模型构建器。
public partial class Dual
{
public DateTime SysDate { get; set; }
}
public virtual DbSet<Dual> Dual { get; set; }
modelBuilder.Entity<Dual>(e => { ... });
并使用查询。
await _dbContext.Dual.FromSqlRaw("Select sysdate from dual;").ToListAsync();
是否有任何更简单或更好的方法可以从 Oracle 获取“SYSDATE”?我正在使用 EF Core 版本 5。
解决方案
您可以尝试此线程中提到的解决方案:
public async Task<DateTime> GetTime()
{
DbConnection connection = _dbContext.Database.GetDbConnection();
if (connection.State == ConnectionState.Closed)
{
await connection.OpenAsync();
}
var command = connection.CreateCommand();
command.CommandText = "select sysdate from dual";
return (DateTime) await command.ExecuteScalarAsync();
}
推荐阅读
- flutter - 在 Flutter 中过滤掉电影
- .htaccess - 主要和次要 .htaccess 中的“嵌套”RewriteRule
- javascript - 返回函数数组的计算属性在这些函数中失去了 this 的范围
- firebase - Browsers block CORS cookie
- mapstruct - Mapstruct 将枚举名称映射到代码,反之亦然
- python - 打印列表元素时如何删除逗号(,)?
- sql - 如何在 SQL Server 中将 2 列拆分为 4 列?
- python - 指定 reversed(row) 函数中查询的列数
- javascript - where 子句中带有项目值的动态列表视图
- kotlin - Kotlin:如何从二进制转换为十进制