【问题标题】:How can I use native sql query in C# by entity framework如何通过实体框架在 C# 中使用本机 sql 查询
【发布时间】:2014-05-21 10:49:20
【问题描述】:

我想使用这个查询

select datename (dw, CURRENT_TIMESTAMP)AS DAY ;

获取工作日名称并使用它将记录插入到表中。

如何通过实体框架使用此查询

我用这个方法但是不行:

   private void GetDayName(DateTime ReportDate,out string DayName)
    {
     using (var context = new Daily_ReportEntities3())
     {
       var day_name= context.ExecuteStoreQuery ("select datename (dw,'|| + ReportDate + ||') as NameOfDay", null).ToList();

    DayName = day_name=.ToString();
      }
    }

【问题讨论】:

  • 你为什么不直接使用DateTime.Now.DayOfWeek
  • 好问题在这里 ;-)

标签: c# sql-server entity-framework visual-studio-2012 entity-framework-5


【解决方案1】:

您不能直接从实体框架执行事务 SQL 语句。

但你可以在ObjectContextExecute Functions

首先定义一个标量值函数,返回您需要的数据,然后将其导入您的 Store 模型。您将能够通过ObjectContext.ExecuteFunction 方法执行它。


PS。考虑使用System.Globalization.Calendar 对象实现您的功能,该对象可以提供有关基于特定文化的日期名称的信息。

【讨论】:

    【解决方案2】:

    应该是这样的:

    var day_name = context.Database.SqlQuery<string>
         ("select datename (dw,'|| + ReportDate + ||') as NameOfDay").FirstOrDefault<string>();
    


    http://msdn.microsoft.com/en-us/library/gg696545%28v=vs.103%29.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多