【发布时间】:2021-12-17 01:11:11
【问题描述】:
从 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;");
}
另一种方法是创建一个modelbuilder之类的。
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。
【问题讨论】:
-
_dbContext.Database.SqlQuery<string>("Select sysdate from dual") .FirstOrDefault(); -
此方法不适用于 EF 3 及更高版本。
-
Docs-Entity Framework-Entity Framework 6-查询数据-使用原始SQL查询docs.microsoft.com/en-us/ef/ef6/querying/raw-sql
context.Database.SqlQuery<string> -
_dbContext,Database是DatabaseFacade,所以SqlQuery方法不可用。
标签: c# .net entity-framework-core