entity framework代码优先执行标量值函数
如何首先使用代码执行标量函数? 下面是我尝试但只返回查询本身,而不是返回值。
using (var dbContext = new FTTRContext()) { queryResult = dbContext.Database.SqlQuery("SELECT [dbo].[ufnGetTotalUsers] (GETDATE())").ToString(); }
SqlQuery
返回DbRawSqlQuery
一个实例。 这个类是一个可枚举的,它希望你通过标准的LINQ运算符或foreach
等来枚举它。此对象上的.ToString()
只返回将要执行的查询。 要获得所需的结果,请使用.SingleAsync()
或.SingleAsync()
。
queryResult = dbContext.Database .SqlQuery("SELECT [dbo].[ufnGetTotalUsers] (GETDATE())") .Single();
这应该返回您正在寻找的标量字符串结果。
话虽这么说,您的查询看起来像无效的SQL。 你只是想从SQL Server中获取日期吗? 如果是这样,查询应该是SELECT GETDATE()
。 一旦这样做,您可能必须使用.SqlQuery
因为该值的类型不是字符串。