LINQ中GETDATE()
的替代是什么?
我从以下帖子中得到了一些解决方法:
是否有 更好的 方法?其中,不需要ExecuteQuery
或单独的函数调用?
答案 0 :(得分:7)
据我所知,使用linq to sql你所指的帖子是要走的路。我看不出有什么比这更好的了。这是一个非常优雅的解决方案。
使用实体框架可以使用SqlFunctions.CurrentTimestamp
。除此之外,即使你在linq中使用DateTime.Now
实体(不是linq到sql),它也会被翻译为GetDate
:
context.Companies.Select (c => DateTime.Now);
转换:
SELECT
GetDate() AS [C1]
FROM [dbo].[Company] AS [Extent1]
如果仅想要获取数据库日期,那么这是另一回事。在这种情况下,我看不出有什么能够执行查询SELECT GetDate()
。
答案 1 :(得分:0)
FROM VB
私有函数GetServerDate()As DateTime
Using context As New DirectEDISQLEntities Dim Query = context.Reports_MailList.[Select](Function(c) DateTime.Now).FirstOrDefault Return Query End Using End Function
等于
SELECT SysDateTime()AS [C1] FROM [dbo]。[Reports_MailList] AS [Extent1]
答案 2 :(得分:0)
您可以尝试以下方法:
using (DataContext dboContext = new DataContext())
{
var dQuery = dboContext.Database.SqlQuery<DateTime>("SELECT getdate()");
return dQuery.AsEnumerable().First();
}