代码之家  ›  专栏  ›  技术社区  ›  Muhammad Akhtar

执行自定义查询-实体框架

  •  1
  • Muhammad Akhtar  · 技术社区  · 15 年前

    我要执行自定义查询以获取数据库服务器的日期时间 select Getdate() 使用实体框架。我该怎么做?

    谢谢

    3 回复  |  直到 14 年前
        1
  •  4
  •   chris    14 年前
    ObjectQuery<DateTime> date = new ObjectQuery<DateTime>("select Getdate()", context)
    DateTime now = date.Single();
    
        2
  •  2
  •   Julien N    14 年前

    你可以尝试这样的想法:

    public static partial class ObjectContextExtension
    {
        public static T ExecuteScalarCommand<T>(this ObjectContext context, string command)
        {
            DbConnection connection = ((EntityConnection)context.Connection).StoreConnection;
            if (connection.State == ConnectionState.Closed)
                connection.Open();
    
            DbCommand cmd = connection.CreateCommand();
            cmd.CommandText = command;
            cmd.CommandType = CommandType.Text;
    
            return (T)cmd.ExecuteScalar();
        }
    

    它将方法“ExecuteEscalarCommand”添加到ObjectContext。
    只需将SQL请求作为参数提供,并为泛型类型提供返回类型。

        3
  •  -1
  •   walkerk    15 年前
    Public Function GetDateTimeFromServer() As DateTime
        Using context As New NorthwindEntities()
            Dim dateQry As IQueryable(Of DateTime) = From bogus In context.Products_
                Select DateTime.Now
            Dim result As DateTime = dateQry.First()
            Return result
        End Using
    End Function
    

    您可以对表(如products)使用查询,并确保您没有选择表中的任何列,如上面的代码所示。它不高雅,但很实用。