简体   繁体   English

如何通过实体框架在C#中使用本机SQL查询

[英]How can I use native sql query in C# by entity framework

I want to use this query 我想使用这个查询

select datename (dw, CURRENT_TIMESTAMP)AS DAY ;

to get week day name and use it to insert record to table. 获取星期几的名称并将其用于将记录插入表中。

how can I use this query by entity framework 如何通过实体框架使用此查询

I use this method but it doesn't work: 我使用此方法,但不起作用:

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

You cannot execute transact SQL statements from Entity Framework directly. 您不能直接从Entity Framework执行事务SQL语句。

But you can Execute Functions from within ObjectContext . 但是您可以在ObjectContext 执行函数

First define a scalar value function returning data you need and next import it to your Store model. 首先定义一个标量值函数,该函数返回所需的数据,然后将其导入到商店模型中。 You'll be able to execute it via ObjectContext.ExecuteFunction method. 您将可以通过ObjectContext.ExecuteFunction方法执行它。


PS. PS。 Consider implementing your functionality using System.Globalization.Calendar object, that can supply the information about day names based on certain culture. 考虑使用System.Globalization.Calendar对象实现功能,该对象可以根据特定区域性提供有关日期名称的信息。

Should be like this: 应该是这样的:

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM