如何在实体框架中使用C#中的本机sql查询

时间:2014-05-21 10:49:21

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

我想使用此查询

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();
      }
    }

2 个答案:

答案 0 :(得分:0)

您无法直接从Entity Framework执行transact SQL语句。

但你可以ObjectContext内的Execute Functions

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


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

答案 1 :(得分:0)

应该是这样的:

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